Te has preguntado si existe la posibilidad de crear certificados SSL/TLS en un ambiente local de desarrollo, el llamado localhost y tener un https://localhost

mkcert es una herramienta que nos puede ayudar con esto, tan solo con unos cuantos comandos

Instalación y configuración

1. Instalar

De acuerdo a tu distribución o Sistema Operativo ocupar el gestor o instalador correspondiente. En mi caso uso un Archlinux

				
					sudo pacman -S mkcert
				
			
2. Generar certificado local CA
				
					mkcert -install
				
			

Con esto se generara los CA rootCA-key.pem y rootCA.pem en la carpeta share del HOME, $HOME/.local/share/mkcert/

3. Generear certificado para el localhost

Puedes optar por generalos en el HOME de tu sistema o en la carpeta de tus desarrollos, en mi caso escogeré la segunda opción

				
					# Navegar a la carpeta de desarrollos

cd /srv/http

# Generar certificado

mkcert localhost
				
			
				
					# La salida será algo parecido a esto

Created a new certificate valid for the following names 📜
 - "localhost"

The certificate is at "./localhost.pem" and the key at "./localhost-key.pem" ✅

It will expire on 6 September 2025 🗓

				
			
4. Configurar apache
Editar el archivo de configuración de apache httpd.conf y descomentar las líneas
				
					LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf/extra/httpd-ssl.conf
				
			

Editar conf/extra/httpd-ssl.conf y modificar las líneas con los valores de los certificados creados en el paso 3 , seguido reiniciar apache

				
					SSLCertificateFile "/srv/http/localhost.pem"

SSLCertificateKeyFile "/srv/http/localhost-key.pem"
				
			
5. Crear htaccess

Básicamente con el punto 4 ya estaría configurado el HTTPS en localhost. Pero tendríamos que poner el https://localhost manualmente. Para mitigar esto, crear un .htaccess en la raíz de tus desarrollos  con el contenido

				
					RewriteEngine On
RewriteCond %{HTTPS}  !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
				
			

Ahora ya podemos navegar de manera segura en localhost