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!

0 comentarios »

Deja un comentario

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

Buscar