Xampp: uso de certificados SSL en localhost

XAMPP: uso de certificados SSL en localhost

Muchas veces durante el proceso de desarrollo necesitamos acceder a una API o a un recurso externo, para lo cual se hace imperativo utilizar una conexión segura. El problema viene cuando estamos trabajando en nuestro servidor local, donde usualmente no disponemos del protocolo HTTPS. Es por esto que desarrollamos la siguiente guía para poder instalar certificados SSL para un localhost corriendo XAMPP en Linux.

 

Xampp: guía para instalar certificados SSL en un localhost

Para poder resolver este problema, desarrollamos la siguiente guía, para poder instalar los certificados SSL en n servidor local o localhost corriendo Xampp en Linux:

 

Paso 1: Creación de carpeta

Crear una carpeta vacía y dirigirnos a ella desde la terminal. Por ejemplo:

mkdir ssl
cd ssl

Para los pasos siguientes, asumiremos que estamos parados dentro de esa carpeta.

 

Paso 2: Root key & root certificate

Primeramente, debemos crear una root key para luego generar un root certificate. Importante: para este paso deberemos elegir y recordar una passphrase o contraseña .

sudo openssl genrsa -des3 -out localRootCA.key 2048

Ahora podemos crear un root certificate. Durante este paso utilizaremos la passphrase ingresada al generar la root key. Importante: se pueden contestar las preguntas que aparecen en este paso con un punto o un espacio en blanco, sin embargo cuando nos soliciten el Common Name debemos ingresar «localhost» sin comillas.

sudo openssl req -x509 -new -nodes -key localRootCA.key -sha256 -days 1024 -out localRootCA.pem

 

Paso 3 : Pedido de firma de certificado

Antes de generar nuestro certificado SSL, es necesario emitir un archivo de solicitud de firma de certificado (server.csr) y una clave (server.key) para poder hacer la comprobación de nuesro certificado. Importante: se pueden contestar las preguntas que aparecen en este paso con un punto o un espacio en blanco, sin embargo cuando nos soliciten el Common Name debemos ingresar «localhost» sin comillas. Para este paso también deberemos pensar una passphrase.

sudo openssl req -new -nodes -out server.csr -newkey rsa:2048 -keyout server.key

 

Paso 4 : Certificado SSL

Para generar un certificado SSL, primero debemos generar un archivo de configuración denominado x509v3.ext con el siguiente contenido:

authorityKeyIdentifier = keyid, issuer
basicConstraints = CA: FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost

Finalmente, ahora podemos expedir nuestro certificado SSL para XAMPP con el siguiente comando (la passphrase que nos pedirá es la del segundo paso):

sudo openssl x509 -req -in server.csr -CA localRootCA.pem -CAkey localRootCA.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile x509v3.ext

 

Configuraciones finales

Finalmente, deberemos copiar los certificados generados a nuestro servidor local, y decirle al navegador que utilicemos que puede confiar en esos certificados.

Para mover los archivos:

sudo cp server.crt /opt/lampp/etc/ssl.crt/
sudo cp server.key /opt/lampp/etc/ssl.key/

En el caso de que usemos Google Chrome, dirigirse a chrome://settings/certificates, en la pestaña Authorities hacer click en Import y seleccionar el archivo localhostRootCA.pem. La configuración es similar para el resto de los navegadores.

Para terminar, bastará con reiniciar nuestra instancia de XAMPP:
sudo /opt/lampp/lampp restart

 

Conclusión

Si todo salió bien, al dirigirnos a https://localhost deberíamos ver que la conexión es segura.

 


Somos Syloper, una empresa de desarrollo de software con base en Rosario (Argentina), y con proyección hacia toda Latinoamérica.

>>> Si te interesa lo que hacemos y necesitás nuestra ayuda, podés comunicarte con nosotros.