Certificado SSL en Windows con XAMPP

Si ha llegado aquí es porque ha instalado el servidor Web XAMPP para Windows, lo ha ejecutado y en el navegador le ha enviado un mensaje de error.

Como también uso XAMPP, me animé a escribir este tutorial, ya que, por diversas razones, olvidaba cómo había logrado hacer funcionar el certificado SSL en Windows.

En internet hay múltiples ejemplos de cómo hacerlo, todos ellos tan variados e incluso contradictorios, muchos de los cuáles los probé y no funcionaban, hecho que me fastidiaba.

Lo primero que debemos saber que el XAMPP una vez instalado, trae consigo un certificado con fecha vencida y con la versión 1 y aunque lo actualicemos, no funcionará puesto que la fecha cambiará y la versión no lo hará.

Para fines de este ejemplo doy por sentado que ya está instalado el servidor XAMPP y que está funcionando y en mi ejemplo, el servidor se llamará localhost, por lo que podré llamarlo en el navegador web con la siguiente URL: https://localhost/

Empezamos:

1.    Crear un certificado SSL en XAMPP

1.1 Creamos el archivo V3.ext

Si usamos la versión del archivo por defecto que trae XAMPP para crear certificados SSL, se crearan en la versión 1 y si lo instalamos en nuestro servidor, nos dará error de que la “conexión no es privada” debido a que el certificado es invalido.

Por ello, para que tener un certificado SSL operativo en un servidor web SSL en Windows con XAMPP, creamos el archivo V3.ext que contendrá los parámetros para crear un certificado SSL versión 3, así como cambiaremos el plazo de vigencia del certificado que por defecto es de 365 días.

Hay que tener presente que el archivo V3.ext será leído por el archivo makecert.bat ubicado en la misma carpeta en el momento de creación del certificado SSL.

En la ruta: C:\xampp\apache, creamos un archivo de texto con el nombre V3.ext, atención con la extensión de este que debe ser «ext» y con el editor de texto agregamos el siguiente contenido:

subjectAltName = @alt_names
[alt_names]
DNS.1 =localhost
DNS.2 =*.your.domain
DNS.3 =your.domain
DNS.4 =127.0.0.1
DNS.5 =127.0.0.2

Debe considerar que, los nombres de DNS deben variar en función de la necesidad específica. Luego de ello grabamos.

1.2 Editamos el archivo makecert.bat

Es aconsejable, guardar una copia del archivo makecert.bat para conservar la versión original, antes de proceder a su modificación.

En este caso, vamos a realizar dos modificaciones al archivo original que viene en XAMPP, para que el plazo de caducidad sea mayor a 365 días y que, además, pueda leer el archivo anteriormente creado con el nombre V3.ext.

En la ruta C:\xampp\apache, con el editor de texto, abrimos el archivo makecert.bat y nos ubicamos en la línea 9 cuyo texto es: «bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365» y lo reemplazamos con lo siguiente:

«bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 1460 -extfile v3.ext».  Grabamos el archivo.

1.3 Ejecutamos el archivo makecert.bat

Antes de ejecutar el archivo makecert.bat, es recomendable ingresar a las carpetas C:\xampp\apache\conf\ssl.crt y C:\xampp\apache\conf\ssl.key y renombrar los archivos server.crt y server.key, ya que, de lo contrario, estos serán reescritos.

Cuando ejecute el archivo makecert.bat, aparecerá una ventana y en ella se le pedirá cierta información que deberá registrar para generar el certificado SSL.

A continuación, se le indica los datos que son obligatorios y los que son opcionales, en este último caso si no quiere agregar datos, solo use la tecla entrar para pasar al siguiente registro.

  • Contraseña: Obligatorio. Al inicio se le solicitará dos veces para verificar que sean idénticas.
  • Nombre del país: Obligatorio. Considere usar la extensión de su país en mayúsculas y dos letras.
  • Nombre del estado o provincia: Opcional.
  • Nombre de la localidad: Opcional.
  • Nombre de la organización: Opcional.
  • Nombre de la unidad organizativa: Opcional.
  • Nombre del host: Obligatorio. «localhost» en el caso del ejemplo o el nombre que le ha asignará su host local.
  • Dirección de correo electrónico: Opcional.
  • Una contraseña de desafío: Opcional.
  • Un nombre de empresa opcional: Opcional.

Entonces, en la carpeta C:\xampp\apache, ejecutamos el archivo makecert.bat. Para ello, clic derecho con el ratón, ejecutar como administrador.

Complete la información y al concluir la ejecución del archivo makecert.bat, se le volverá a pedir la contraseña registrada al inicio del procedimiento.

Finalmente, si todo se ejecutó correctamente, recibirá el siguiente mensaje:

writing RSA keySignature ok
subject=C = AU, ST = Some-State, O = Internet Widgits Pty Ltd, CN = localhost
Getting Private key

Se han movido         1 archivos.
Se han movido         1 archivos.
-----

Das Zertifikat wurde erstellt.
The certificate was provided.

Presione una tecla para continuar . . .

En la carpeta C:\xampp\apache\conf\ssl.crt estará un archivo server.crt conteniendo toda la información que ha registrado en el procedimiento; mientras que, en la carpeta C:\xampp\apache\conf\ssl.key se ubicará el archivo server.key con contiene las llaves de seguridad del certificado SSL creado.

Ahora, ya estamos listos para instalar en Windows el certificado SSL creado.

2.  Instalamos el certificado SSL en Windows

Al ingresar a la carpeta C:\xampp\apache\conf\ssl.crt\ encontrará un archivo denominado server.crt, clic derecho sobre él y escoger la opción «instalar certificado».

Aparecerá una pantalla con dos opciones, escogemos «equipo local» y clic en «Siguiente».

Otra ventana aparece respecto de la seguridad, le damos aceptar. A continuación, aparece la ventana del asistente para importar certificados, escogemos la opción «colocar todos los certificados en el siguiente almacén», damos clic en «examinar», aparece una ventana con varias imágenes de carpetas, escogemos la segunda que dice «Entidades de certificación raíz de confianza», luego le damos a «Siguiente» y luego «finalizar».

Con esto ya está instalado el certificado SSL para nuestro servidor local en Windows 10 o Windows 11.

5/5 - 18 votos