Existen algunos métodos populares para generar certificados SSL y TLS en Linux. Uno de los métodos más populares para emitir certificados SSL es Let's encrypt, que es una autoridad certificadora que ofrece certificados SSL gratuitos. Existe una forma aún más fácil de emitir el certificado que no requiere dependencias ni requisitos. El script acme.sh escrito en Shell facilita la generación e instalación de certificados SSL en sistemas Linux. En este artículo, aprenderemos cómo instalar el script acme.sh en el sistema Linux y cómo usarlo para generar e instalar certificados SSL.
Instalación acme.sh
La instalación de acme.sh es un proceso simple y directo. Siga los pasos a continuación para instalar la aplicación.
Método 1:usar el comando curl
$ curl https://get.acme.sh | sh
Método 2:Uso del repositorio git
$ git clone https://github.com/acmesh-official/acme.sh.git $ cd ./acme.sh $ ./acme.sh --install
Una vez completada la instalación, ejecute el siguiente comando para verificar.
$ acme.sh --version
Salida:
Generar certificado SSL
La generación de certificados SSL usando acme.sh es un proceso muy simple. Siga los pasos a continuación para generar el certificado.
Genera un certificado para un solo dominio utilizando el modo webroot.
$ acme.sh --issue -d vitux.com -w /home/wwwroot/vitux.com
Generar un certificado para múltiples dominios en el mismo certificado
$ acme.sh --issue -d vitux.com -d www.vitux.com -d example.vitux.com -w /home/wwwroot/vitux.com
donde,
/home/wwwroot/vitux.com es la carpeta webroot donde se aloja el archivo del sitio web. Recuerde otorgar acceso de escritura a la carpeta webroot.
vitux.com es el nombre de dominio que he usado para generar certificados SSL. Puede seleccionar su nombre de dominio en consecuencia.
Todos los nombres de dominio deben apuntar al mismo directorio webroot.
El certificado SSL generado se ubicará en el directorio ~/.acme.sh/
Donde nombre-dominio es el directorio creado con su dominio proporcionado al generar el certificado.
Emitir certificado utilizando el servidor independiente
Use el siguiente comando para generar un certificado SSL usando el servidor independiente.
Para dominio único
$ acme.sh --issue --standalone -d vitux.com
Para varios dominios
$ acme.sh --issue --standalone -d vitux.com -d www.vitux.com -d example.vitux.com
Se necesita permiso de usuario root o Sudo para escuchar en el puerto TCP 80. El puerto 80 debe estar libre para escuchar en el servidor.
Generar certificado SSL utilizando un servidor SSL independiente
Use el siguiente comando para generar un certificado SSL usando un servidor SSL independiente. En este ejemplo, he usado el dominio linuxways.com para la demostración. Considere su propio nombre de dominio al generar el certificado.
$ acme.sh --issue --alpn -d vitux.com -d www.vitux.com -d example.vitux.com
Se necesita el permiso de usuario root o Sudo para escuchar en el puerto TCP 443. Además, recuerde liberar el puerto 443 para escucharlo, de lo contrario, aparecerán indicaciones para liberarlo.
Usar el modo apache para generar certificados
Se recomienda el modo Webroot para generar un certificado SSL para ejecutar un servidor web. Si se utiliza Apache como servidor web, se puede utilizar el modo Apache para emitir el certificado. Este modo no escribe ningún archivo en el directorio webroot.
Este modo debe interactuar con el servidor web Apache, por lo que debe tener privilegios de root/sudo.
$ acme.sh --issue --apache -d vitux.com www.vitux.com
El comando anterior generará solo el archivo de certificado. Debe señalar el directorio del archivo de certificado en el archivo de configuración de Apache para instalar el certificado.
Usar el modo nginx para emitir el certificado
En particular, si está utilizando nginx como servidor web, se puede usar el modo nginx en lugar del modo webroot. Todo lo que necesita tener es privilegio de root/sudo ya que esto interactúa con el servidor web nginx. Este modo no escribirá ningún archivo en el directorio webroot.
$ acme.sh --issue --nginx -d vitux.com www.vitux.com
El comando anterior generará solo el certificado. Debe señalar el directorio del archivo de certificado en el archivo de configuración de nginx para instalarlo.
Emitir certificado para dominio comodín
La generación de certificados para dominios comodín es fácil. En lugar de -d paramento, use dominio comodín como:
$ acme.sh --issue -d vitux.com -d *.vitux.com --dns dns_cf
El parámetro –dns especifica qué servidor de DNS está utilizando, dns_cf significa cloudflare.
Renueve el certificado SSL de Let's Encrypt con acme.sh
Durante la instalación de acme.sh, crea un cronjob para renovar el certificado SSL cada 60 días. Por lo tanto, no necesita renovar el certificado manualmente. Sin embargo, puede renovar el certificado con forzar opción como:
$ acme.sh --renew -d vitux.com --force
Para encontrar el trabajo cron, ejecute el siguiente comando.
$ crontab -l
Directorio de archivos de registro
El archivo de registro de acme.sh se encuentra en el directorio ~/.acme.sh. La generación de archivos de registro no está habilitada de manera predeterminada. Realice los siguientes cambios en el archivo account.conf.
$ cd ~/.acme.sh $ vi account.conf
Ahora use el siguiente comando para encontrar el archivo de registro generado.
$ cd ~/.acme.sh $ tail -f acme.sh.log
Conclusión
En este artículo, aprendimos cómo instalar el script acme.sh para generar certificados SSL en sistemas Linux. Le mostré cómo generar certificados SSL para varios dominios a la vez y cómo renovar certificados SSL.