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”

snapshot1

Colocamos el dominio o subdominio al que vamos a instalar el certificado.

snapshot2

Seguido, colocamos el certificado que nos mostró en pantalla, empezando por —–BEGIN CERTIFICATE—– y terminando en —–END CERTIFICATE—–

snapshot3

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”

snapshot4

Ahora nos dirigimos a nuestro sitio anteponiendo https para poder verificar

¡Y listo!

 


angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana. Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

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. […]

Deja un comentario