martes, 21 de julio de 2020

XAMPP Linux, activar SSL (HTTPS) en localhost

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
Nos dirigimos a https://localhost deberíamos ver que la conexión es segura.

Fuente: https://www.syloper.com/blog/servidores/xampp-certificados-ssl-localhost/

XAMPP Windows, activar SSL (Método fácil)

Descargamos el siguiente software:  MKCERT Ejecutamos: mkcert -install mkcert localhost mkcert -pkcs12 localhost copy "localhost.pem&qu...