Cертификат Let's Encrypt для Windows(IIS)

Let’s Encrypt в автоматическом режиме предоставляет бесплатные криптографические сертификаты X.509 для TLS шифрования (HTTPS).
Процесс получения сертификатов под Linux хорошо документирован и понятен. А вот с Windows все немного сложней.
Есть несколько вариантов:
Собирать и запускать их на сервере не всегда удобно.
Но всегда можно сделать сертификат под Linux.

1. Скачиваем CertBot и даем права на запуск
$ wget https://dl.eff.org/certbot-auto
$ chmod a+x certbot-auto

2. Запускаем в ручном режиме
$ ./certbot-auto certonly --authenticator manual
Нужно будет указать email и ознакомится с условиями

3. Указываем домен и соглашаемся сохранить IP. Бот выдаст инструкцию как мы может подтвердить владения доменом.

4. Переходим в Windows.
Мне нравится вариант с созданием отдельного сайт для подтверждения таких сертификатов.
Создаем директорию letsencrypt.
Перенаправляем нужный домен на эту директорию. 
В IIS есть радел "Типы MIME", там нужно добавить:
Расширение файла: .
Тип MIME: text/html
Или добавляем web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension="." mimeType="text/html" />
        </staticContent>
    </system.webServer>
</configuration>

Создаем в letsencrypt директорию .well-known
Из-за того что папка начинается с точки ее необходимо создавать из консоли
MKDIR letsencrypt\.well-known\
В .well-known добавляем еще acme-challenge и уже в ней тот файл и его содержимое которое указал certbot

5. Возвращаемся в Linux и начинаем проверку домена, если все сделано верно, то в /etc/letsencrypt/live/"имя домена" будет сертификат
  • cert.pem - сертификат сервера, используется для Apache (SSLCertificateFile
  • chain.pem - сертификат цепочки, используется для Apache (SSLCertificateChainFile)
  • fullchain.pem - используется для соединения cert.pem и chain.pem, в Nginx в параметре ssl_certificate
  • privkey.pem - приватный ключ для сертификата, используется для Apache (SSLCertificateKeyFile) и Nginx в параметре ssl_certificate_key
Дальше нужно конвертировать их в pfx для Widnows.

Заходим под root или копируем файлы в домашних каталог.
Запускаем  openssl
$ openssl
$ pkcs12 -inkey privkey.pem -in fullchain.pem -export -out yourdomain.pfx

yourdomain.pfx - то что нам нужно.

6. Для обновления сертификата
$ ./certbot-auto renew



Комментарии

Популярные сообщения из этого блога

Асинхронное выполнение процедур или триггера в MS SQL Server

Рекурсивные SQL запросы

Кратко про SQLAlchemy Core