Сегодня автоматизируем установку бесплатного SSL сертификата на сайт, который работает на web-сервере IIS 10. Операционная система Microsoft Windows 2016. Сертификат выдается лишь на 90 дней, но его всегда можно быстро обновить в автоматическом режиме.
Наличие SSL сертификата для сайта позволяет защитить данные пользователей, передаваемые по сети и гарантировать целостность переданных данных. Хотя, если вы попали на эту статью, то вы уже знаете для чего вам нужен сертификат.
Let’s Encrypt - центр сертификации, начавший работу в бета-режиме с 3 декабря 2015 года, предоставляющий бесплатные криптографические сертификаты X.509 для TLS-шифрования (HTTPS). Процесс выдачи сертификатов полностью автоматизирован. https://letsencrypt.org/
Для установки сертификата будем использовать консольную утилиту LetsEncrypt-Win-Simple.
Подготовка
LetsEncrypt-Win-Simple берём здесь:
https://github.com/PKISharp/win-acme/releases
Я скачал версию v2.0.5.246. Распаковываем архив.
Папка win-acme.v2.0.5.246 нам потом пригодится для автоматического продления сертификатов, которое будет запускаться через Task Scheduler, не удаляйте.
При запуске wacs.exe хочет .NET Framework 4.7.2.
Нас отправляют на сайт:
https://dotnet.microsoft.com/download/thank-you/net472
Качаем .NET Framework 4.7.2 и запускаем установку.
Принимаем лицензионное соглашение, Install.
Ждём.
.NET Framework 4.7.2 установлен.
Перезагружаем сервер. Подготовка к установке сертификатов завершена.
Устанавливаем SSL сертификат
Запускаем wacs.exe под администратором.
Для начала сгенерируем простой сертификат. Для этого выбираем Create new certificate, N. Нас спрашивают, какой сертификат делаем.
Для тестирования генерируем простой сертификат без псевдонимов (для установки сертификата с псевдонимами выберите 2). Пишем 1. Нам показывают список всех доменов, забинденных в IIS.
Жертвой будет setpizza.com. Пишем 5.
Нужно зарегистрироваться, указываем свой e-mail администратора, или несколько через запятую.
Нужно принять лицензионное соглашение. Если написать "y", то откроется PDF файл с соглашением. Принимаем лицензионное соглашением.
Готово.
Проверяем сертификат
Заходим на https://setpizza.com/
Всё работает, сертификат есть.
В хранилище сертификатов:
Let's Encrypt устанавливает также сертификаты промежуточных центров сертификации.
443 порт добавился автоматически, сертификат выбрался автоматически.
В планировщике добавилось ежедневное правило для обновления сертификатов.
Дополнительные настройки
Вы можете настроить почту для уведомлений.
Как нам подсказывают, нужно ручками подправить файл settings.config.
<setting name="SmtpServer" serializeAs="String">
<value>localhost</value>
</setting>
<setting name="SmtpPort" serializeAs="String">
<value>25</value>
</setting>
<setting name="SmtpUser" serializeAs="String">
<value />
</setting>
<setting name="SmtpPassword" serializeAs="String">
<value />
</setting>
<setting name="SmtpSecure" serializeAs="String">
<value>False</value>
</setting>
<setting name="SmtpSenderName" serializeAs="String">
<value>Let's Encrypt</value>
</setting>
<setting name="SmtpSenderAddress" serializeAs="String">
<value>admin@yourdomain1.ru</value>
</setting>
<setting name="SmtpReceiverAddress" serializeAs="String">
<value>admin@yourdomain2.ru</value>
</setting>
<setting name="EmailOnSuccess" serializeAs="String">
<value>True</value>
</setting>
Лучше генерировать сертификаты с псевдонимами, например:
Принцип понятен, дальше разберётесь.