Los certificados para las páginas web son hoy en día una necesidad básica y no un lujo para los sitios de compras o que generen dinero de alguna manera, ya que poco a poco se está tratando de convertir en un estandar el https por su mejora en seguridad.
El por qué no avanzaba más rápido es por el costo del certificado, ya que muchas autoridades certificadoras emtien los certificados con costos muy elevados para el usuario común, o el emprendedor que no cuenta con fondos para tal “lujo”.
Todo ello acabó con let’s encrypt, que emite los certificados para tus dominios de manera gratuita y sólo queda el problema técnico de generarlos e instalarlos. Tienen una duración de tres meses, pero sin costo de renovación.
En éste tutorial se utiliza la herramienta acme para generar los certifiados, corriendo en CentOS 5 y 6; aunque los autores de acme lo probaron en:
- Ubuntu
- Debian
- CentOS
- Windows
- FreeBSD
- pfsense
- openSUSE
- Alpine Linux
- Archlinux
- Fedora
- Kali Linux
- Oracle Linux
- Proxmox
- openBSD
- Mageia
- SunOS / Solaris
Vamos a empezar.
En nuestra terminal, nos dirigimos a una carpeta donde queramos instalar acme, en éste ejemplo es /root
cd root
Creamos la carpeta acme y entramos en ella
mkdir acme cd acme
Descargamos e instalamos acme
curl https://get.acme.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 671 100 671 0 0 1396 0 --:--:-- --:--:-- --:--:-- 0 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 89667 100 89667 0 0 2332k 0 --:--:-- --:--:-- --:--:-- 5352k [mar sep 13 21:22:31 CDT 2016] Installing from online archive. [mar sep 13 21:22:31 CDT 2016] Downloading https://github.com/Neilpang/acme.sh/archive/master.tar.gz [mar sep 13 21:22:31 CDT 2016] Extracting master.tar.gz [mar sep 13 21:22:32 CDT 2016] Installing to /root/.acme.sh [mar sep 13 21:22:32 CDT 2016] Installed to /root/.acme.sh/acme.sh [mar sep 13 21:22:32 CDT 2016] OK, Close and reopen your terminal to start using acme.sh [mar sep 13 21:22:32 CDT 2016] Installing cron job 0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null [mar sep 13 21:22:32 CDT 2016] Good, bash is installed, change the shebang to use bash as prefered. [mar sep 13 21:22:32 CDT 2016] OK [mar sep 13 21:22:32 CDT 2016] Install success!
Ahora generamos los certificados de los dominios que necesitemos.
Ejecutamos .acme.sh indicando que generaremos el certificado colcoando todos los dominios / subdominios que necesitemos con el parámetro -d, e indicando la ruta en dónde se encuentra la raíz web con el parámetro -w, para que pueda verificar que tales dominios nos pertenecen (de lo contrario cualquiera podría generar certificados válidos para cualquier dominio)
En éste ejemplo se harán certificados para éste dominio angelinux-slack y algunos subdominios
/root/.acme.sh/acme.sh --issue -d blog.angelinux-slack.net -w /home/angelinu/public_html/blog
[mar sep 13 21:36:33 CDT 2016] Creating account key [mar sep 13 21:36:34 CDT 2016] Registering account [mar sep 13 21:36:35 CDT 2016] Registered [mar sep 13 21:36:36 CDT 2016] Creating domain key [mar sep 13 21:36:37 CDT 2016] Single domain='blog.angelinux-slack.net' [mar sep 13 21:36:37 CDT 2016] Verify each domain [mar sep 13 21:36:37 CDT 2016] Getting webroot for domain='blog.angelinux-slack.net' [mar sep 13 21:36:37 CDT 2016] Getting token for domain='blog.angelinux-slack.net' [mar sep 13 21:36:37 CDT 2016] Verifying:blog.angelinux-slack.net [mar sep 13 21:36:43 CDT 2016] Success [mar sep 13 21:36:43 CDT 2016] Verify finished, start to sign. [mar sep 13 21:36:44 CDT 2016] Cert success.
Seguido les muestra el certificado generado para su dominio, así como la lista de las ubicaciones en donde se generarondicho certificado, la clave privada, así como el certificado del intermediario.
Ahora debemos entrar vía WHM y dirigirnos a “instalar un certificado en un dominio”
Colocamos el dominio o subdominio al que vamos a instalar el certificado.
Seguido, colocamos el certificado que nos mostró en pantalla, empezando por —–BEGIN CERTIFICATE—– y terminando en —–END CERTIFICATE—–
Para la clave privada, debemos leer uno de los archivos que nos generó acme, y que nos mostró al final de la ejecución. Es el que tiene la leyenda
[mar sep 13 21:36:44 CDT 2016] Your cert key is in (la ruta)
Para poder verlo ejecutamos cat
cat /ruta/del/certificado.key
Copiamos y pegamos el contenido del archivo en WHM donde pide la clave privada.
Y para Certificate Authority Bundle, podemos regresarnos un poco más arriba donde pide “Certificado” y a la derecha tiene un botón con la leyenda “Autorrellenar según certificado”.
Con ello tendrremos un signo verde en los tres elementos indicando que todo está bien y sólo nos queda presionar el bot´on “Instalar”
Ahora nos dirigimos a nuestro sitio anteponiendo https para poder verificar
¡Y listo!
3 Comentarios
Javier · 18 mayo, 2018 a las 16:55
no tengo WHM por linea de comando en un slackware 14.2 como lo hago?
Aclaro que tengo todo funcionando correctamente incluso probe con un certificado autogenerado y todo esta correcto, pero no logro dar en la tecla con este cerfificado, en donde lo indique (vhost o host) fallla….. alguna sugerencia?
Javier · 19 mayo, 2018 a las 18:53
Ya encontre como hacerlo indico a continuacion por si alguien lo necesita
editar httpd-ssl.conf
indicar lo siguiente
SSLCertificateFile “/directorio_donde_se_encuentra_el_archivo/dominio_regitrado.cer”
SSLCertificateKeyFile “/directorio_donde_se_encuentra_el_archivo/dominio_regitrado.key”
SSLCertificateChainFile “/directorio_donde_se_encuentra_el_archivo/fullchain.cer”
SSLCertificatePath “/directorio_donde_se_encuentra_el_archivo”
SSLCertificateFile “/directorio_donde_se_encuentra_el_archivo/ca.cer”
reiniciar el servicio httpd (/etc/rc.d/rc.httpd restart)
Si administra host virtuales debera indicar tambien en el arhivo de virtuales (httpd-vhost.conf) para el puerto 443
SSLCertificateFile “/directorio_donde_se_encuentra_el_archivo/dominio_regitrado.cer”
SSLCertificateKeyFile “/directorio_donde_se_encuentra_el_archivo/dominio_regitrado.key”
Redireccionar un sitio de HTTP a HTTPS | Angelinux · 18 octubre, 2018 a las 18:40
[…] Ahora bien, ésta publicación no se va a enfocar en cómo generar los certificados, ya tengo una publicación que aborda el tema. […]