Instalar SSL Lets Encrypt​ en Windows Bien explicado

Cada día son más los servicios web que sólo funcionan  a través de protocolos seguros https (ssl), y no está lejos el día en el que el http sin encriptar sea solo un recuerdo de tiempos pasados. Aprende en este tutorial cómo configurar el acceso SSL en tu servidor apache a través de los certificados let’s encrypt.

Requisitos previos

Antes de poder lanzarnos a instalar nuestro certificado ssl Apache, 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.

¿ Cómo Cambiar la dirección Ip del ordenador ?

Para cambiar la dirección Ip interna de nuestro dispositivo windows, el primer paso será conocer la dirección Ip que tiene asignada actualmente

Para ello:

  • Desde el menú inicio ejecutamos: cmd
  • En la consola del sistema escribimos: ipconfig
Pulsa sobre la imagen para ver la animación

 

En nuestro ejemplo podemos ver que nos encontramos conectados solo a través de la red wifi

De la información que nos aparece, hemos de apuntarnos estos dos datos

  • Dirección IPv4: es la dirección Ip interna asignada a nuestro equipo ( en nuestro ejemplo 192.168.0.236)
  • Puerta de enlace predeterminada: Es la dirección Ip de nuestro router (en nuestro ejemplo 192.168.0.1)

El siguiente paso será establecer nuestra dirección ip como fija:

  • Desde el menú de Windows buscamos: Ver conexiones de red
  • De todas las conexiones disponibles, nos situamos con el ratón sobre la que queremos modificar (en nuestro caso la red wifi)
  • Pulsamos el botón derecho del ratón y seleccionamos: Propiedades
  • Pinchamos en «protocolo internet versión 4» (con cuidado de no desmarcar el check) y pulsamos el botón propiedades
Pulsa sobre la imagen para ver la animación

 

Llegados a este punto ya podemos modificar las propiedades de nuestra conexión a red

  • Seleccionamos: Usar la siguiente dirección Ip
  • En dirección Ip escribimos la que nos hemos apuntado anteriormente: En nuestro caso 192.168.0.236
  • En máscara de red dejamos los datos que nos salgan por defecto
  • En puerta de enlace predeterminada, escribimos la que nos hemos apuntado antes. En nuestro caso 192.168.0.1

Por ahora, tendremos una pantalla con un aspecto similar a esta:

¿ Cómo seleccionar un servidor DNS ?

El último paso para configurar nuestra dirección Ip fija privada será indicarle los servidores DNS a utilizar.

Cuando usamos una Ip dinámica a través de DHCP, es el propio router el que nos asigna estas DNS, según la configuración de nuestro proveedor de internet, pero al establecer una ip privada somos nosotrol los que tenemos que proporciona esta información.

Para este tutorial será suficiente saber que aquí podemos indicar las DNS proporcionadas por nuestro proveedor de Internet o bien utilizar un servidor de DNS público como los de Google, CloudFlare o OpenDns (Este último muy interesante para entornos familiares ya que incorpora un filtro especial para bloquear contenido pornográfico y violento)

Si os interesa un post específico sobre servidores públicos DNS, dejarme un comentario al final del post.

Para nuestro ejemplo usaremos los servicios de Google

  • En servidor DNS Preferido escribimos: 8.8.8.8
  • En servidor DNS alternativo: 8.8.4.4

Así, tendremos una pantalla final de este tipo

Ya sólo nos queda pulsar aceptar en todas las pantallas y nuestro equipo ya cuenta con una dirección Ip intena fija para poder continuar con la instalación del certificado https

¿ Cómo 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 puestos»

Como vimos en el artículo dedicado a servidores DDNS, podemos asignar «un nombre» a nuestra dirección Ip  pública, de tal forma que al escribir en nuestro navegador, por ejemplo, http://nefele.duckdns.com, 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 (recordemos, puerto 80), me lo reenvías al ordenador que hace de servido web ( en nuestro ejemplo el que tiene la ip 192.168.0.239 ), que él ya sabrá que hacer con esa información.

Pues bien, la forma de decírselo es «tocando las tripas del router» y configurando el servicio NAT (Network Address Translation)

Cómo configurar NAT

Lo primero que tenemos que tener presente es que cada router utiliza su propio sistema de configuración NAT, de forma que no es fácil hacer un tutorial sobre este tema, pues seguramente los pasos para configurar tu router no serán los mismos que los míos.

Pero para poder continuar con el ejemplo, usaremos la configuración de un router livebox de Orange, que es el que utilizo.

El primer paso será acceder al sistema de configuración del router, para ello:

  • Desde nuestro navegador web, indicamos la dirección correspondiente a la puerta de enlace
Pulsa sobre la imagen para ver la animación

 

Nos aparecerá la pantalla de autentificación de usuario, en la cual tenemos que introducir un usuario y contraseña válido para poder continuar. Estos datos dependerán de tu proveedor de internet (siempre y cuando no los hayas modificado).

Mi consejo: Busca en Google el modelo de tu router junto al nombre de tu proveedor de internet para saber cómo configurarlo. Por ejemplo, en mi caso, buscaría livebox orange

 

 

Una vez hemos traspasado la barrera del usuario y contraseña, buscamos dónde cambiar la configuración NAT. En mi caso, en Avanzada/NAT/Mapeo de puertos

 

 

En esta pantalla nos aparecerá un listado con todos los puertos que tenemos redireccionados. Tan solo tendremos que añadirle los correspondientes a nuestro servidor web

 

En este ejemplo estoy redireccionando dos puertos, el 80 (peticiones http) y el 443 (peticiones https).

Para entenderlo mejor, lo leeremos de derecha a Izquierda.

Estamos diciéndole al router: Todas las peticiones que me lleguen a través del puerto 80, me las envías al puerto 8080  del ordenador que tiene la ip 192.168.0.239 (que, como ya habrás deducido, corresponden con la del equipo en el que hemos instalado Apache y el puerto de escucha que le hemos configurado). Y lo mismo hacemos con las peticiones que entran por el puerto 443 (el utilizado por let’s encrypt)

Así, nuestro router ya sabe qué hacer y ya podemos acceder a nuestro servidor web desde cualquier ordenador conectado a internet utilizando una url convencional, en nuestro caso http://nefele.duckdns.org

Pulsa sobre la imagen para ver la animación

 

Obtener el  certificado SSL

Descargar configurador let’s encript

Para descargarnos el configurador let’s encrypt

  • Accedemos a la 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
    Para este ejemplo hemos usado la versión  2.1.0.539
    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:\Apache24\certificado
Pulsa sobre la imagen para ver la animación

Generar el certificado

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

  • Accedemos a la carpeta c:\Apache24\certificado
  • Nos ponemos sobre el fichero wacs.exe
  • Pulsamos el botón derecho del ratón y seleccionamos: Ejecutar como administrador

 

Pulsa sobre la imagen para ver la animación

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 nefele.duckdns.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:\apache24\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:\apache24\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

Ya casi hemos terminado.

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:\apache24\conf\ssl

 

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-ahssl.conf

  • Copiamos el texto
    ><VirtualHost _default_:443>
    ServerName nefele.duckdns.org:443
    SSLEngine on
    SSLCertificateFile "c:\apache24\conf\ssl\nefele.duckdns.org-crt.pem"
    SSLCertificateKeyFile "c:\apache24\conf\ssl\nefele.duckdns.org-key.pem"
    SSLCertificateChainFile "c:\apache24\conf\ssl\nefele.duckdns.org-chain.pem"

    SSLOptions +FakeBasicAuth +StrictRequire
    <Files ~ ".(cgi|shtml|phtml|exe?)$">
    SSLOptions +StdEnvVars +ExportCertData
    </Files>

    DocumentRoot "${SRVROOT}/htdocs"
    CustomLog "${SRVROOT}/logs/ssl_request.log" \
    "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    <Directory "${SRVROOT}/htdocs">
    Options Indexes Includes FollowSymLinks
    AllowOverride AuthConfig Limit FileInfo
    Require all granted
    </Directory>
    </virtualhost>

  • Editamos el fichero c:\apache24\conf\extra\httpd-ahssl.conf
  • Borramos todos los tag <Virtualhost>
  • En su lugar, pegamos el texto anterior, cambiando nefele.duckdns.org por nuestra propia url
  • Guardamos los cambio realizados
  • Reiniciamos Apache
Pulsa sobre la imagen para ver la animación

 

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

 

Pulsa sobre la imagen para ver la animación

Leave a Reply

avatar
  Suscribir  
Notificar de

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para «permitir cookies» y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en «Aceptar» estarás dando tu consentimiento a esto.

Cerrar