Instalar certificado SSL​ en Windows

Cada día son más los servicios web que sólo funcionan a través de protocolos seguros https, y no está lejos el día en el que el http sin encriptar sea solo un recuerdo de tiempos pasados.

Este tutorial muestra cómo adaptar tu servidor web a las nuevas exigencias de seguridad web a través de los certificados let’s encrypt.

 

Requisitos previos

Antes de poder lanzarnos a instalar nuestro certificado ssl en nuestro ordenador, hemos de realizar una serie de cambios y comprobaciones en nuestro sistema para asegurarnos de que el proceso se va a ejecutar correctamente

Configurar Ip local fija

Todos los dispositivos conectados a nuestra red interna ( nuestro router ), se identifican gracias a una dirección Ip que el router les asigna para poder establecer la comunicación y dar salida a internet a cada dispositivo. Usualmente, esta dirección Ip la establece el router de forma dinámica, esto es, en determinadas condiciones el router puede asignar una dirección Ip distinta a la que ya tiene a cualquiera de nuestros dispositivos.

Si nuestro ordenador está actuando como servidor, esto puede ser un problema, dado que si el router nos da una nueva dirección Ip en un momento dado, tendríamos que modificar toda nuestra configuración para que apuntara a la nueva Ip si queremos que nuestro servidor web vuelva a funcionar

Para solucionar este problema, lo mejor es asignar una Ip fija al ordenador que actúa como servidor, de forma que nos aseguramos  que ésta nunca va a cambiar y no vamos a tener problemas de redireccionamiento.

No voy a entrar en detalles de como asignar nuestra IP local como fija, existen tutoriales específicos para ello.

 

Abrir puertos en el router

El siguiente paso será configurar nuestro router para indicarle a qué dispositivo (realmente a qué dirección Ip) tiene que reenviar las solicitudes de acceso que recibe a través de Internet, lo que coloquialmente se conoce como «abrir puertos»

Existen servidores DDNS, a los que podemos asignar ’un nombre’ a nuestra dirección Ip  pública, de tal forma que al escribir en nuestro navegador, por ejemplo, http://xevicomas.no-ip.org, todo el tráfico se dirija a nuestra Ip pública de internet.

Bien, todo este tráfico lo recibe directamente nuestro router, pero… ¿Y ahora qué hace el router con él?.  De alguna manera le tenemos que decir al router: Oye, todo lo que te entre procedente de un navegador web (HTTP puerto 80, y HTTPS 443), me lo reenvías al ordenador que hace de servidor web, que él ya sabrá que hacer con esa información.

Pues bien, la forma de decírselo es configurando el servicio NAT (Network Address Translation) del propio router

No voy a entrar en detalles de como abrir puertos en el router, dado la enorme variedad de modelos existentes y tutoriales específicos para ello.

 

Obtener el  certificado SSL

Descargar configurador let’s encrypt

Para descargarnos el configurador

  • Let’s encrypt… url: https://github.com/PKISharp/win-acme/releases
  • Navegamos por la página hasta acceder al certificado: descarga la última versión correspondiente a tu sistema operativo y terminada en pluggable.zip
    Si te resulta más cómodo puedes descargarlos directamente aquí
    Para versiones Windows de 32 bits: utiliza este  enlace
    Para versiones Windows de 64 bits: utiliza este enlace
  • Abrimos el fichero comprimido que hemos descargado
  • Lo descomprimimos en C:\xampp\apache\certificado

 

Generar el certificado

Una vez descargado el fichero, ejecutamos el programa para generar nuestro certificado.

Abrimos una consola símbolo de sistema como administrador

 

  • Accedemos a la carpeta C:\xampp\apache\certificado
  • Tecleamos wacs.exe

 

Vamos a ver ahora, paso a paso, las distintas opciones del instalador

El primer paso será indicarle que queremos crear un nuevo certificado, por tanto, seleccionamos la opción M

 

Entrada manual: 1

 

A continuación indicaremos la url para la que queremos generar el certificado. En nuestro caso xevicomas.no-ip.org ( sin http o https delante)

 

Llegados a este punto, el programa nos pide una confirmación de los datos introducidos. Simplemente repasamos que todo es correcto y pulsamos enter

 

De los múltiples sistema de verificación que nos propone, seleccionaremos el 1, que personalmente me parece el más sencillo y fácil de entender

 

A continuación, tenemos que indicarle la ruta de la carpeta a través de la cual Apache sirve los fichero html. Por defecto es C:\xampp\htdocs

 

A la siguiente pregunta: Copy default ……  responderemos N

 

En cuanto al tipo de CSR, le diremos que 2 (RSA key)

 

El tipo de certificado a usar será el 2 (Apache, nginx, etc.)

 

A continuación, le indicaremos dónde queremos guardar los certificados generados. Esta ruta será C:\xampp\apache\conf\ssl

 

En pasos de almacenamiento adicionales seleccionaremos la opción 3 (ninguno)

 

De igual forma, le diremos que no queremos realizar  ningún proceso adicional

 

A continuación, nos solicitará una (o varias) direcciones de email para poder avisarnos en caso de que surja alguna incidencia con nuestro certificado

 

El siguiente paso será preguntarnos si queremos leer los términos de servicio…

 

… y si aceptamos dichos términos

 

Si todo ha funcionado correctamente, nos aparecerán los datos del resumen de la instalación

 

En este momento ya tenemos nuestro certificado generado.

A continuación nos preguntará si queremos programar una tarea Windows para gestionar la auto renovación del certificado, a lo que responderemos Y (sí)

 

Tan sólo nos queda indicar el nombre de usuario y su contraseña para que el instalador nos cree de forma automática dicha tarea

 

En este punto, volvemos a la pantalla inicial, por si queremos generar otro certificado. En nuestro caso, como ya hemos terminado pulsaremos q (salir)

 

Si queremos verificar la creación de nuestros certificados, podemos encontrarlos  en la C:\xampp\apache\conf\ssl

xevicomas.no-ip.org-crt.pem

xevicomas.no-ip.org-key.pem

xevicomas.no-ip.org-chain.pem

 

 

Configurar let’s encript en Apache

Modificar ficheros de configuración

Para finalizar la configuración será necesario hacer unas pequeñas  modificaciones en la configuración de apache

Modificaciones en el fichero httpd-ssl.conf

  • Editamos el fichero C:\xampp\apache\conf\extra\httpd-ssl.conf
  • Localizamos el bloque <Virtualhost _default_:443>
  • Sustituimos o añadimos las entradas, cambiando xevicomas.no-ip.org por la url indicada al solicitar el certificado
  • ServerName xevicomas.no-ip.org:443
  • SSLCertificateFile “${SRVROOT}/conf/ssl/xevicomas.no-ip.org-crt.pem
  • SSLCertificateKeyFile “${SRVROOT}/conf/ssl/xevicomas.no-ip.org-key.pem
  • SSLCertificateChainFile “${SRVROOT}/conf/ssl/xevicomas.no-ip.org-chain.pem
  • Guardamos los cambio realizados
  • Reiniciamos Apache

 

 

Con estas modificaciones, ya tenemos instalado y funcionando nuestro certificado ssl let’s encrypt.

Si queremos verificar su correcta instalación, podemos acceder a la url  https://www.sslshopper.com/ssl-checker.html  y comprobarlo

Ya podemos intentar acceder al servidor por la url https://xevicomas.no-ip.org, eso si, para acceder a https hay que hacerlo desde otra ip pública.