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.

ud puede tener un debian 7, 8 inclusive debian 6 o 5 y aun le servira.

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.

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.
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 aplicawww.venenuxdom.com
esta en 192.1.1.50 -> si aplicavenenuxdom.com
esta en 192.1.1.50 -> maquina donde se ejecuta el scriptimap.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
Publicar un comentario