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!!