Twitter Facebook RSS Feed

lunes, 04 de julio de 2016 a las 22:19hs por Gustavo Cantero (The Wolf)

Hace unos días publiqué un artículo contando un poco de qué se trata Let’s Encrypt y había prometido contar cómo utilizarlo, por lo cual, acá voy a explicar cómo crear un certificado SSL, usarlo en un sitio web de IIS y programar la renovación automática.

Para esto voy a utilizar la herramienta letsencrypt-win-simple, la cual está desarrollada con .NET y con la que podemos realizar toda la configuración de manera muy sencilla.

Luego de bajar esta herramienta la debemos copiar al servidor web y ejecutarla, tras lo cual nos mostrará un contenido parecido al siguiente:

Let's Encrypt (Simple Windows ACME Client)
Renewal Period: 60
Certificate Store: WebHosting

ACME Server: https://acme-v01.api.letsencrypt.org/

Config Folder: C:\Users\usuario\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org
Certificate Folder: C:\Users\usuario\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org
Loading Signer from C:\Users\usuario\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\Signer

Getting AcmeServerDirectory
Loading Registration from C:\Users\usuario\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\Registration

Scanning IIS Site Bindings for Hosts
1: IIS www.scientia.com.ar (C:\inetpub\wwwroot\www)
2: IIS testing.scientia.com.ar (C:\inetpub\testing)
3: IIS testing2.scientia.com.ar (C:\inetpub\testing2)

W: Generate a certificate via WebDav and install it manually.
F: Generate a certificate via FTP/ FTPS and install it manually.
M: Generate a certificate manually.
A: Get certificates for all hosts
Q: Quit
Which host do you want to get a certificate for:

En estas líneas podemos ver varias cosas: nos muestra el tiempo de renovación, en este caso 60 días, lo que significa que no va a pedir un certificado cuya antigüedad sea menor a este valor, los directorios donde guardará la configuración y los certificados, utilizando por defecto la carpeta letsencrypt-win-simple dentro del directorio de usuario (en mi caso en C:\Users\usuario\AppData\Roaming\letsencrypt-win-simple), y por último nos muestra los sitios configurados en el IIS y algunas opciones para generar los certificados manualmente o de manera remota utilizando WebDAV o FTP.

Para este ejemplo elegiremos uno de los sitios configurados en nuestro IIS, por ejemplo el 2, tras lo cual nos mostrará algo así:

Authorizing Identifier testing.scientia.com.ar Using Challenge Type http-01
Writing challenge answer to C:\inetpub\testing\.well-known/acme-challenge/ywwxERPAI6PK17q0DtGfHYM0ShgEZflAmsWzCcbhJ9U
Writing web.config to add extensionless mime type to C:\inetpub\testing\.well-known\acme-challenge\web.config
Answer should now be browsable at http://testing.scientia.com.ar/.well-known/acme-challenge/ywwxERPAI6PK17q0DtGfHYM0ShgEZflAmsWzCcbhJ9U
Submitting answer
Refreshing authorization
Authorization Result: valid
Deleting answer

Aquí nos muestra el archivo creado en nuestro sitio para que Let’s Encrypt pueda verificar que es nuestro y que la validación fue exitosa.  Luego devolverá algo como esto:

Requesting Certificate
Request Status: Created
Saving Certificate to C:\Users\usuario\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\testing.scientia.com.ar-crt.der
Saving Issuer Certificate to C:\Users\usuario\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\ca-0A0141420000015385736A0B85ECA708-crt.pem
Saving Certificate to C:\Users\usuario\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\testing.scientia.com.ar-all.pfx
Opened Certificate Store "WebHosting"
Adding Certificate to Store
Closing Certificate Store
Adding https Binding
Committing binding changes to IIS
Opened Certificate Store "WebHosting"
Closing Certificate Store
Creating Task letsencrypt-win-simple httpsacme-v01.api.letsencrypt.org with Windows Task Scheduler at 9am every day.

En este texto nos cuenta que la creación del certificado fue satisfactoria y nos muestra dónde lo guardó, con qué nombre, en que store del servidor lo instaló, que agregó el binding https a nuestro sitio web en el IIS (en caso de no haberlo tenido ya configurado), y que creó una tarea en el Windows Task Scheduler que se ejecutará todos los días a las 9 de la mañana para verificar si hay que renovar algún certificado.

En caso que hayamos ejecutado antes esta herramienta para crear otro certificado, esta tarea ya va a estar creada, por lo que nos va a mostrar el siguiente mensaje pudiendo elegir si reemplazamos la tarea existente o no:

Do you want to replace the existing letsencrypt-win-simple httpsacme-v01.api.letsencrypt.org task? (Y/N)

Si elegimos no ahí termina todo, pero si en cambio elegimos si, o esta es la primera vez que utilizamos la herramienta, nos consultará si queremos especificar un usuario con el cuál se ejecutará la renovación.  Deberíamos elegir si e ingresar los datos de un usuario válido para que la herramienta, en caso de tener un certificado a renovar, tenga los permisos necesarios para hacerlo.

Do you want to specify the user the task will run as? (Y/N) Y
Enter the username (Domain\username): usuario
Enter the user's password: *********
Renewal Scheduled IIS testing.scientia.com.ar (C:\inetpub\testing) Renew After 02/09/2016
Press enter to continue.

Y esto es todo, ya tenemos nuestro nuevo certificado gratis instalado, el IIS configurado y una tarea para la renovación automática configurada en el Task Scheduler.

Espero que este artículo les sea de utilidad.

¡Suerte!

4 comentarios »

  1. Hola gracias por estos datos,sigue estando vigente? lo probare saludos

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Buscar