Ir al contenido principal

Let's Encrypt: como usar el dehydrated en Debian para correo, web, etc

Esta guia le servira para cualquier sistema Devuan, VenenuX o Debian inclusive aquellos viejos,
ud puede tener un debian 7, 8 inclusive debian 6 o 5 y aun le servira.
DNS-01_dehydrated


dehydrated es un cliente o programa para obtener certificados validos desde una entidad en internet, para tu servidor web, y tambien para los demas servicios, es el supuesto "candado en la barra de internet" segun los ignorantes, tal como se muestra en la siguiente pantalla.

Captura de pantalla de 2020-01-08 10-46-22 

Este tambien servira para otros servicios, ya pues el XMPP, IMAP, HTTPS, etc etc .. ya que se puede construir en varios multidominios, pero con al contrariedad que en el caso de "dehydrated" cada mauqina que ejecuta el servicio debe de ejecutar su propia instancia de "dehydrated".. a menos que se utilize complicados "hooks"

http-01 VS dns-01: cada maquina que ejecuta el servicio debe de
ejecutar su propia instancia de `dehydrated` si se emplea el metodo
de verificacion `http-01` a menos se utilize el `dns-01` y complicados `hooks`
este ultimo verifica ciertos dominios especiales en el dns propio, mas simple
es el primero y mas rapido de implementar, ambos requieren tener o control
del servicio web o control del servidio dns donde se ejecute el programa.

Requisitos tomar en cuenta:

  • usar dehydrated por cada host en cada direccion ip. (ver abajo)
  • el dominio valido: venenuxdom.com
  • subdominios validos: www.venenuxdom.com imap.venenuxdom.com smtp.venenuxdom.com
  • el DNS al menos 12 hora con todos los venenuxdom.com
Estos requisitos significa que la maquina donde esta venenuxdom.com es la misma donde esta los otros subdominios, si alguno subdominio no esta hosteado o es de dicha maquina, no debera usarse, ejemplo:
  • otro.venenuxdom.com esta en 192.1.1.40 -> no aplica
  • www.venenuxdom.com esta en 192.1.1.50 -> si aplica
  • venenuxdom.com esta en 192.1.1.50 -> maquina donde se ejecuta el script
  • imap.venenuxdom.com esta en 192.1.1.50 -> si aplica

Instalacion de programas

Ejecutaremos un paquete que por tener dependencias fijas y limpias, sirve en todos los debians, a la fecha, esto si es un verdadero programa, porque no tiene dependencias esquisitas ni especificas de versiones:
apt-get install openssl curl wget bash

wget http://http.us.debian.org/debian/pool/main/d/dehydrated/dehydrated_0.6.2-2+deb10u1~bpo9+1_all.deb

dpkg -i dehydrated_0.6.2-2+deb10u1~bpo9+1_all.deb
El paquete aqui es la version de buster ejecutada en cualquier debian sin problemas, ya que solo depende de bash, openssl y curl.

Configuracion principal

La configuracion necesita parametros para la identificacion de cuenta, el dominio al cual se el crea el certificado de esa maquina (puesto la maquina donde se ejecuta es la que necesitara el certificado).
cat > /etc/dehydrated/domains.txt << EOF
venenuxdom.com mail.venenuxdom.com smtp.venenuxdom.com imap.venenuxdom.com www.venenuxdom.com mx.venenuxdom.com
EOF

cat > /etc/dehydrated/conf.d/00_defaultaccount.sh << EOF
WELLKNOWN="/var/lib/dehydrated/acme-challenges/"
CONTACT_EMAIL="root@venenuxdom.com"
EOF

mkdir /var/lib/dehydrated/certs

dehydrated --register --accept-terms --challenge http-01

Configuracion por http-01

La configuracion empleara el metodo http-01 que es probando http siendo el DNS ya activo y valido, por lo que simplemente necesita que el servidor web de el certificado este ejecutando y que dehydrated este en la misma maquina que el servidor web.
NOTA IMPORTANTE los siguientes comando se pueden ejecutar tengan o no instalado apache o lighttpd, al menos uno de los dos debe estar instalado.
cat > /etc/lighttpd/conf-available/15-dehydrated.conf << EOF
alias.url += (
 "/.well-known/acme-challenge/" => "/var/lib/dehydrated/acme-challenges/",
)
EOF

lighty-enable-mod dehydrated

/usr/sbin/service lighttpd restart

cat > /etc/apache2/conf-available/dehydrated.conf << EOF
Alias /.well-known/acme-challenge /var/lib/dehydrated/acme-challenges/
<Directory /var/lib/dehydrated/acme-challenges/>
        Options None
        AllowOverride None
        <IfModule !mod_authz_core.c>
                Order allow,deny
                Allow from all
        </IfModule>
        <IfModule mod_authz_core.c>
                Require all granted
        </IfModule>
</Directory>
EOF

/usr/sbin/service apache2 restart

Ejecucion y certificados

Una vez configurados se ejecuta el comando que guardara los certificados en /var/lib/dehydrated/certs/ con directorio igual al dominio de cada uno de los especificados en domains.txt.
NOTA IMPORTANTE aqui se ejecuta un paso adicional, se "combina" y se produce un tercer y ultimo certificado para sistemas como courier y lighttpd necesarios.
dehydrated --cron --challenge http-01

cat /var/lib/dehydrated/certs/venenuxdom.com/cert.pem /var/lib/dehydrated/certs/venenuxdom.com/privkey.pem > /var/lib/dehydrated/certs/venenuxdom.com/privcert-lasted.pem

ln -sf privcert-lasted.pem /var/lib/dehydrated/certs/venenuxdom.com/privcert.pem

chown daemon:www-data /var/lib/dehydrated/certs/*.pem

chmod 640 /var/lib/dehydrated/certs/*.pem

cp /var/lib/dehydrated/certs/venenuxdom.com/privcert-lasted.pem /etc/courier/privcert.pem

chown daemon:root /etc/courier/*.pem

chmod 640 /etc/courier/*.pem
En este punto ya se tiene todos los "pem's" necesarios que son los cerfiles.

Como usar los certificados:

Varios serivicios ahora deben cambiar el certificado y reiniciarse:

lighttp

sed -i -r 's#.*ssl.pemfile =.*#ssl.pemfile = "/var/lib/dehydrated/certs/venenuxdom.com/privcert.pem"#g' /etc/lighttpd/conf-available/10-ssl.conf

/usr/sbin/lighty-enable-mod ssl
/usr/sbin/service lighttpd restart

apache

sed -s -i -r 's|\tSSLCertificateFile.*|\tSSLCertificateFile /var/lib/dehydrated/certs/venenuxdom.com/cert.pem|g' /etc/apache2/sites-available/default-ssl
sed -s -i -r 's|\tSSLCertificateKeyFile.*|\tSSLCertificateKeyFile /var/lib/dehydrated/certs/venenuxdom.com/privkey.pem|g' /etc/apache2/sites-available/default-ssl
sed -s -i -r 's|\tSSLCertificateChainFile.*|\tSSLCertificateChainFile /var/lib/dehydrated/certs/venenuxdom.com/chain.pem|g' /etc/apache2/sites-available/default-ssl
sed -s -i -r 's|\tSSLCACertificateFile.*|\tSSLCACertificateFile /var/lib/dehydrated/certs/venenuxdom.com/fullchain.pem|g' /etc/apache2/sites-available/default-ssl

/usr/sbin/a2enmod ssl
/usr/sbin/service lighttpd restart

courier

cp /var/lib/dehydrated/certs/venenuxdom.com/privcert-lasted.pem /etc/courier/privcert.pem

chown daemon:root /etc/courier/*.pem

chmod 640 /etc/courier/*.pem

sed -i -r 's|^TLS_CERTFILE.*|TLS_CERTFILE=/etc/courier/privcert.pem|g' /etc/courier/esmtpd
sed -i -r 's|^TLS_CERTFILE.*|TLS_CERTFILE=/etc/courier/privcert.pem|g' /etc/courier/esmtpd-ssl
sed -i -r 's|^TLS_CERTFILE.*|TLS_CERTFILE=/etc/courier/privcert.pem|g' /etc/courier/imapd-ssl

for i in /etc/init.d/courier*; do $i restart; done

prosody

sed -i -r 's#key =.*#key = "/var/lib/dehydrated/certs/venenuxdom.com/privkey.pem";#g' /etc/conf.avail/venenuxdom.com.cfg.lua
sed -i -r 's#certificate =.*#certificate = "/var/lib/dehydrated/certs/venenuxdom.com/cert.pem";#g' /etc/conf.avail/venenuxdom.com.cfg.lua

/usr/sbin/service prosody restart

postfix

smtpd_tls_cert_file = /etc/dehydrated/certs/domain.tld/fullchain.pem /etc/postfix/main.cf
smtpd_tls_key_file = /etc/dehydrated/certs/domain.tld/privkey.pem /etc/postfix/main.cf
smtpd_use_tls=yes /etc/postfix/main.cf
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache /etc/postfix/main.cf
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache /etc/postfix/main.cf

systemctl restart postfix
asdsa

Comentarios

Entradas más populares de este blog

Zabbix monitorizacion y admnistracion de redes - introduccion

  Esta herramienta, Zabbix se centra en los hosts: por lo que es la opción correcta para monitorear redes distribuidas (se desarrolló originalmente para monitorear servidores). Zabbix también es administrador , y está listo para ipv6! Con un proxy como hombre en el medio y también con funciones para redes ocultas y con cortafuegos. En los casos en los que no existe la opción de instalar un agente, Zabbix ofrece una supervisión básica sin agentes. Con él, puede verificar la disponibilidad de los servicios de red, así como ejecutar comandos remotos, con esta introducción comenzamos una serie de publicaciones sobre el despliegue de Zabbix en alpine y / o debian linux, también para redes distribuidas. Entonces empezemos a entender a zabbix:

Errores de pam_mysql: símbolo my_make_scrambled_password y dlerror

. el viejo Linux siempre funciona, los más nuevos son una mierda, pero aquí estamos y debemos solucionar.. para que se arregle esa basura: pam_mysql simplemente no se carga en Debian, porque se mueve a "ubicaciones segura"s, además, viene con algunos problemas en Debian 7, Debian 8 y Debian 9 si usas diferentes versiones de Mysql / Mariadb. Aquí las soluciones simples y otras:

ostiket 1.9.X solucion a STARTTLS failed code: 220, response OK

  ..en osticket 1.12, 1.10 asi como 1.9 si tiene un sistema de corro fuertemente configurado.. y quiere conectarse localmente (es decir no necesitamos alta seguridad) la configuracion es imposible con localhost aun cuando su puertos estan 100% cerrados y es ILOGICO TANTA SEGURIDAD!!! El mas ilogico de sus problemas fue " oticket authentication failure [SMTP: STARTTLS failed (code: 220, response: Ok)] ",...

bandeja de iconos e indicadores desaparecen con ayatana - Linux no es más GNU linux

En Alpine sabemos que todo es la vieja escuela, si intentas instalar en Alpine todo a mano, o en Debian a mano sin las recomendaciones activadas; en ambos casos, notaras que no apareceran los iconos en la barra de tareas! Si! tal cual sospechas, tiene que ver con una mierda windowisada y estandares! Si caiste de la mata con la inclusion de codigo Microsoft en el kernel, si la mierda ya huele con la invasion de shitstemd, te caeras y volveras a caer cuando te enteres que Canonical creo un estandar para el area de notificacion "que unifica todo los indicadores del sistema"! Si .. mas software que intenta tomar control unificado. Winlinux se acerca.. y no hacemos nada para proteger la libertad de diversidad que ofrecia linux! ! .

libretro viene y pronto estara en tu tv o telefono

Libretro es un multisistema como mame, pero enfocado a multimedia, es decir   no se extrañen pronto jugar viejos games o poner roms emuladores de play en su tv o bluray   player! porque libretro esta hasta para televisores!

Actualizando debian (old)stable a debian (new)stable

Debian 11 fue lanzado, ahora le mostraremos cómo actualizar de cualquier Debian a cualquier Debian nuevo. Significa que puede actualizar cualquiera, por ejemplo, Debian 12 futuro a Debian 13 futuro, o inclusive oldoldstable a siguiente oldstable.

Tomando en cuidado optimizaciones para estupidos novatos

En general, los ignorantes y los lammers al compilar algo, en su mal conocimiento, simplemente siguen algunas palabras y obedecen las introducciones a la mala comodidad ... Si le preguntas a StackOverFlow, solo hay noobs que le darán respuestas incorrectas .. Verifiquemos este caso: ...

Diversidad de los Sistemas de Inicio en peligro en Debian afecta a otras distros

Una posible mancha ocupara la libertad de elección de usuarios avanzados para la distro madre: Debian; uno que respete la diversidad y la libertad de elección a nivel de «Sistemas de Inicio (Init), todo debido a la futura Resolución General del Proyecto DEBIAN sobre como la gran Distro Madre debe abordar la Diversidad existente sobre los Sistemas de Inicio. Resumiendo hay 3 resoluciones que eliminan las libertades de diversidad, dejando solo el "systemd", de allí el que mas gente odie a systemd, a todo esto se le denomina "un enfoque sano de PID1" en el argot técnico. Sus consecuencias: muerte/obstrucción al trabajo de otras distros mediante carga de trabajo extra debido a que solo existirá systemd: Devuan y MXLinux entre otras.

virtualbox GURU_MEDITATION y VERR_PGM_PHYS_PAGE_RESERVED, casos y soluciones

Error ocurre cuando se tiene mala configuracino de CPU, RAM o NET, por ejemplo la maquina esta en 32bit y el os es 64, o se configuro mucha ram o casi mas de la mitad respecto la real. Guru Meditation -1618 (VERR_PGM_PHYS_PAGE_RESERVED pero encontrar como arreglarlo es dificil ya que no se sabe la causa real puesto es un probelma de configuracion del xml/vdm y sucede mcuho cuadno se crean VM por linea de comandos, asi que pongo los casos mas comunes que lo pueden solventar: CASO1: memoria mal asignada o no accedible es muy comun si usas varias VM y estas son de usuarios distintos, aqui es facil si tienes 2G de ram y ya tienes uan VM con 1G asignada, si tratas de arrancar otra VM con tambien 1G asignada esta fallara con ese error la solucion es disminuir ambas a 512 ya que no puedes arrancar varias VM y estas abarquen mas de la mitad de la ram del sistema real. Menos si son desde ditintos usuarios en la misma maquina real. CASO 2: mala configuracion de discos/ide...