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.