Servidor local con SSL valido

Crear certificados SSL de confianza en servidor local con mkcert en Ubuntu 18.04

Mkcert es una herramienta simple, que no necesita configuración y que se utiliza para crear certificados de desarrollo confiables localmente. Crea e instala automáticamente una CA local en el almacén raíz del sistema y genera certificados de confianza local.
https://github.com/FiloSottile/mkcert/releases

El uso de certificados de autoridades de certificación reales (CA) para el desarrollo puede ser peligroso o imposible (para hosts como localhost o 127.0.0.1), y los certificados autofirmados causan errores de confianza. Administrar su propia CA es la mejor solución, pero generalmente involucra comandos arcanos, conocimiento especializado y pasos manuales, pero ya no con la disponibilidad de la utilidad mkcert.

Instalacion de mkcert

INSTALAR CERTUTIL

Como requisito previo, debe instalar certutil, una utilidad que puede crear y modificar bases de datos de certificados y claves a travez de líneas de comandos.

# apt install libnss3-tools -y

INSTALAR MKCERT

Una vez instalado certutil descargar desde Github e instalar

# wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.1/mkcert-v1.4.1-linux-amd64
# mv mkcert-v1.4.1-linux-amd64 mkcert
# chmod +x mkcert
# cp mkcert /usr/local/bin/

Crear su Autoridad Certificadora (CA)

Ahora que la utilidad mkcert está instalada, ejecute el siguiente comando para generar su CA local.

$mkcert --install
Created a new local CA at "/home/xxxx/.local/share/mkcert" ?
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in the Firefox and/or Chrome/Chromium trust store (requires browser restart)! ?

Como se muestra en la salida, la CA raíz se almacena en /home/xxxx/.local/share/mkcert. También puede encontrar la ruta raíz de CA ejecutando el siguiente comando.

$ mkcert -CAROOT
/home/xxxx/.local/share/mkcert

Generar certificados SSL locales

Ahora que tiene su CA local, ejecute el siguiente comando para generar certificados SSL locales.

$sudo mkcert '*.ejemplo.com' localhost 127.0.0.1 ::1
[sudo] contraseña para root:
Using the local CA at "/home/xxxx/.local/share/mkcert" ✨
Created a new certificate valid for the following names ?
"*.ejemplo.com"
"localhost"
"127.0.0.1"
"::1"
Reminder: X.509 wildcards only go one level deep, so this won't match a.b.servidor.fondo ℹ️
The certificate is at "./_wildcard.ejemplo.com+3.pem" and the key at "./_wildcard.ejemplo.com+3-key.pem" ✅

Habilitando los certificados en Apache

Los certificados ya están instalados y es hora de permitir que su servidor web los use.

Para configurar Apache para usar estos certificados, edite el archivo de configuración de SSL predeterminado, /etc/apache2/sites-available/default-ssl.conf y cambie el certificado SSL y el archivo de clave para que apunte al certificado y el archivo de clave generados localmente arriba. Vea el ejemplo a continuación.

# sudo nano /etc/apache2/sites-available/default-ssl.conf
...
SSLCertificateFile /home/xxxx/example.com+4.pem
SSLCertificateKeyFile /home/xxxx/example.com+4-key.pem
...

Habilite Apache para usar SSL cargando los módulos ssl;

# a2enmod ssl
# a2ensite default-ssl.conf

vuelva a cargar Apache para que tome la nueva configuración

# systemctl reload apache2
# systemctl restart apache

Ingrese con el navegador a la dirección de su servidor

Enable the Certificates for Nginx Web Server

Create your web page configuration as shown below.

# vim /etc/nginx/sites-available/example.com
server {
listen 80;
listen 443 ssl;

ssl on;
ssl_certificate /home/amos/example.com+4.pem; 
ssl_certificate_key /home/amos/example.com+4-key.pem;

server_name example.com;
location / {
root /var/www/html/example;
index index.html;
}
}

Verify that the configuration has no error.

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Restart Nginx

# systemctl restart nginx

Navigate to the browser and test your ssl for your domain.

Well, seems upto that far everything is fine. You have successfully created your locally trusted SSL certificates. Happy development!!

Otro sitio más de Los Lucero