acme.sh - Migración a certbot

Asegúrese de haber iniciado sesión como usuario no root que se utiliza para ejecutar zend y el tracker de nodos seguro.

  • PM2 / Monit - Migración a systemd.
  • Instale certbot.
  • Pare zend y zentracker.
  • Cree certificado independiente.
  • Agregue certificado de CA raíz al almacén de certificados (certificate store).
  • Actualice ubicaciones de cert de zen.conf
  • Agregue usuario no root en grupos.
  • Inice zend y verifique el estado del certificado (cert).
  • Inicie zentracker y verifique el estado del certificado (cert).
  • Limpie archivos de acme.sh
  • Configurar la renovación del certificado


DescripciónComando
1Primero siga la guía PM2 / Monit - Migración a systemd


2

Agregue el repositorio de certbot.


NOTA: Omita este paso para Debian 9.

Ubuntu solamente

sudo add-apt-repository ppa:certbot/certbot -y
3

Agregue el repositorio stretch-backports, actualice el paquete caché e instale certbot directamente desde stretch-backports.


NOTA: Omita este paso para Ubuntu.

Debian 9 solamente

echo "deb http://ftp.debian.org/debian stretch-backports main" | sudo tee -a /etc/apt/sources.list.d/stretch-backport.list
sudo apt-get update
sudo apt-get -t stretch-backports install certbot -y
4Actualice el paquete caché
sudo apt-get update
5Instale el certbot
sudo apt-get install certbot -y
6Detenga zend y zentracker
sudo systemctl stop zend zentracker
7

Establezca una variable de entorno para que coincida con el Nombre de Dominio Completamente Calificado del nodo seguro - deberá escribir este comando y cambiar <FQDN> (el valor entre las comillas ' ') al valor utilizado en el registro de dominio para su nodo.

¡NO USE LETRAS MAYÚSCULAS EN LUGAR DE <FQDN>, REEMPLACE SOLO CON LETRAS MINÚSCULAS!

FQDN='FQDN'

utilice solamente letras minúsculas como en el ejemplo

Ejemplo de Resultado

zenops@node01:~$ FQDN='node01.zentest.win'

8Agregue la variable FQDN al archivo .bashrc, para el usuario que creó, esto garantizará que sea persistente.
echo "export FQDN=$FQDN" >> $HOME/.bashrc
9

Verifique que sus variables ambientales estén configuradas correctamente desde los pasos 7 y 8 anteriores antes de continuar, de lo contrario, deberá volver atrás y volver a realizar esos pasos antes de continuar.


Echo desplegará su FQDN









La última línea del archivo .bashrc necesita leer: export FQDN=<your FQDN here>

echo $FQDN


Ejemplo de Resultado

zenops@node01:~$ echo $FQDN
node01.zentest.win


sed -e 1b -e '$!d' $HOME/.bashrc


Ejemplo de Resultado

zenops@node01:~$ sed -e 1b -e '$!d' $HOME/.bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
export FQDN=node01.zentest.win

10

Instale un certificado (requerido para cifrado TLS de punta a punta para la red de Nodos Seguros). Certbot será utilizado para generar y verificar su certificado.

    • Usted puede pasar con seguridad la marca --register-unsafely-without-email porque (1) un nuevo certificado puede ser pedido en cualquier momento (2) la guía configurará la renovación automática del certificado en paso 22.

NOTA: Algunos proveedores de VPS tienen apache2 habilitado que bloquea el puerto 80. Necesitarás deshabilitar apache2 si se obtiene un error de enlace al puerto 80 cuando se esté estableciendo su certificado independiente.

Disable apache2 (if enabled, see note)

sudo systemctl disable apache2
sudo systemctl stop apache2
sudo certbot certonly -n --agree-tos --register-unsafely-without-email --standalone -d $FQDN
Ejemplo de Resultado

zenops@node01$ sudo certbot certonly -n --agree-tos --register-unsafely-without-email --standalone -d $FQDN

Saving debug log to.../var/log/letsencrypt/letsencrypt.log

Registering without email!

Obtaining a new certificate

Performing the following challenges:
http-01 challenge for node01.zentest.win
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
....-...Congratulations! Your certificate and chain have been saved at:
........./etc/letsencrypt/live/node01.zentest.win/fullchain.pem
.........Your key file has been saved at:
........./etc/letsencrypt/live/node01.zentest.win/privkey.pem
.........Your cert will expire on 2018-09-05. To obtain a new or tweaked
.........version of this certificate in the future, simply run certbot
.........again. To non-interactively renew *all* of your certificates, run
........."certbot renew"
....-...If you like Certbot, please consider supporting our work by:

Donating to ISRG /............Let's Encrypt:..............https://letsencrypt.org/donate
Donating to EFF:..........................................................https://eff.org/donate-le

11

Copie el root CA tal como se requiera por su distribución - este ejemplo está probado para Debian y Ubuntu.


NOTA:Si usted escribe este comando, asegúrese de renombrar el certificado con una extensión ‘.crt’, esto es un requisito para que el próximo comando pueda identificar el certificado y agregarlo en el almacén de certificados (certificate store). Es recomendado que copien y peguen todo lo de esta guia, al menos que se indique lo contrario donde se tengan que reemplazar algunas variables.

Para Debian / Ubuntu

sudo cp /etc/letsencrypt/live/$FQDN/chain.pem /usr/local/share/ca-certificates/chain.crt
12

Actualice el almacén de certificados (certificate store) con el root CA copiada en el paso anterior.












Para Debian / Ubuntu

sudo update-ca-certificates


Ejemplo de Resultado

zenops@node01:~$ sudo update-ca-certificates
Updating certificates in /etc/ssl/certs...
WARNING: Skipping duplicate certificate ca.pem
WARNING: Skipping duplicate certificate ca.pem
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

13

Reemplace el certificado anterior y las ubicaciones clave en zen.conf y agregue "rpcworkqueue = 512".

sed -i "s|$HOME/.acme.sh/$FQDN/$FQDN.cer|/etc/letsencrypt/live/$FQDN/cert.pem|g" ~/.zen/zen.conf
sed -i "s|$HOME/.acme.sh/$FQDN/$FQDN.key|/etc/letsencrypt/live/$FQDN/privkey.pem|g" ~/.zen/zen.conf
echo "rpcworkqueue=512" >> ~/.zen/zen.conf
14

Agregue el usuario no root a los grupos 'adm' y 'systemd-journal'.

sudo adduser $USER adm
sudo adduser $USER systemd-journal
15Modifique la propiedad y los permisos del grupo en el directorio / etc / letsencrypt para permitir que el usuario no root acceda al certificado y a la clave privada. (el acceso se otorga a través del grupo ssl-cert, al que se ha agregado el usuario no root)

Modificar propiedad

sudo chown -R root:sudo /etc/letsencrypt/

Modificar permisos

sudo chmod -R 750 /etc/letsencrypt/
16

Aplique la propiedad al usuario no root de todos los archivos en el Home e iniciar zend.

sudo chown -R $USER:$USER ~/ && sudo systemctl start zend && sleep 30
17Compruebe si zend ha verificado el certificado TLS.
zen-cli getnetworkinfo | grep tls_cert_verified


Ejemplo de Resultado

zenops@node01:~$ zen-cli getnetworkinfo | grep tls_cert_verified
"tls_cert_verified": true,

18

Inicie el zentracker y siga los registros del rastreador (tracker) para verificar que "Cert check" sea "true", salga con CTRL + C

sudo systemctl start zentracker
sudo journalctl -fu zentracker
Ejemplo de Resultado

zenops@node01~$ sudo journalctl -fu zentracker
-- Logs begin at Tue 2018-05-22 12:54:41 EDT. --
May 24 21:34:28 node01 node[42000]: 2018-05-25 01:34:28 GMT -- Connected to server ts1.na. Initializing...
May 24 21:34:28 node01 node[42000]: XXXXX Node t_address (not for stake)=znXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
May 24 21:34:28 node01 node[42000]: Balance for challenge transactions is 0.0247
May 24 21:34:28 node01 node[42000]: Using the following address for challenges
May 24 21:34:28 node01 node[42000]: zcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
May 24 21:34:29 node01 node[42000]: 2018-05-25 01:34:29 GMT -- Authenticated
May 24 21:34:29 node01 node[42000]: 2018-05-25 01:34:29 GMT -- Updated server list
May 24 21:34:29 node01 node[42000]: 2018-05-25 01:34:29 GMT -- Stats: send initial stats.
May 24 21:34:29 node01 node[42000]: 2018-05-25 01:34:29 GMT -- Stats received by ts1.na
May 24 21:34:29 node01 node[42000]: 2018-05-25 01:34:29 GMT -- Cert check: valid=true. Hostname node01.zentest.win
matches CN node01.zentest.win

19Elimine trabajos de crontab existentes para sudo y usuario normal.
sudo crontab -r
crontab -r
20

Elimine los directorios .acme.sh y acme.sh y elimine acme.sh.env de .bashrc.

sudo rm -r ~/{.acme.sh,acme.sh}
sed -i "s|.\ \"/home/$USER/.acme.sh/acme.sh.env\"||g" ~/.bashrc
21Remueva socat y repositorios antiguos.
sudo apt-get remove socat -y
sudo apt-get -y autoremove

Configurar la Renovación del Certificado
22Siga la Parte 10 - Configure la Renovación del Certificado y complete la guía para completarla en la Parte 11.



© 2019 Horizen. All rights reserved.