Let’s Encrypt - бесплатный SSL/TLS сертификат
Получение и установка бесплатного сертификата от центра сертификации Let’s Encrypt
Let’s Encrypt — центр сертификации, при поддержке разнообразных крупных организаций, предоставляющий бесплатные криптографические сертификаты X.509 для TLS шифрования (HTTPS).
В отличие от коммерческих центров сертификации, в данном проекте не требуется оплата, переконфигурация веб-серверов, использование электронной почты, обработка просроченных сертификатов, что делает процесс установки и настройки TLS-шифрования значительно более простым.
Несмотря на то, что проект достаточно молодой, его спонсорами являются достаточно крупные организации:

Основные плюсы
Бесплатно: владелец всякого доменного имени может воспользоваться Let’s Encrypt и получить доверенный (читать как «признаётся любым современным браузером»)
TLS-сертификат (TLS— наследникSSL) совершенно бесплатно;Автоматизированно: Let’s Encrypt предоставляет бесплатное и свободное программное обеспечение (клиент), которое, будучи настроенным на веб-сервере, может полностью автоматически запрашивать безвозмездно предоставляемые сертификаты Let’s Encrypt, автоматически конфигурировать и обновлять их;
Безопасно: Let’s Encrypt строится как платформа для продвижения наилучших практик безопасности
TLSкак на стороне центра сертификации (CA), так и на стороне веб-сайтов, помогая администраторам должным образом настраивать веб-серверы;Прозрачно: информация о выпуске и отзыве каждого сертификата Let’s Encrypt доступна публично, поэтому любой желающий сможет её получить;
Свободно: протоколы взаимодействия со CA, позволяющие автоматизировать процессы выпуска и обновления сертификатов, будут опубликованы как открытый стандарт для максимального внедрения;
Кооперативно: как и любой протокол, лежащий в основе Интернета и Всемирной паутины, Let’s Encrypt является совместным, неподконтрольным какой-либо конкретной организации некоммерческим проектом, созданным исключительно для того, чтобы принести пользу обществу.
Установка
Для дальнейшей работы в системе должен быть предустановлен пакет git.
Загружаем клиент Let`s Encrypt
1 | git clone https://github.com/letsencrypt/letsencrypt |
Переходим в директорию и запускаем letsencrypt-auto, чтобы загрузить все необходимые зависимости и обновить исходный код клиента.
1 | cd letsencrypt |
Получение сертификата доступно как в автоматическом, так и в ручном режимах.
Также существует огромное количество скриптов и форков для полной автоматизации, я размещу информацию о них в конце статьи.
Например для получение сертификата для веб-сервера Apache достаточно выполнить:
1 | ./letsencrypt-auto --apache |
Или для NGINX:
1 | ./letsencrypt-auto --nginx |
В данном примере мы рассмотрим универсальный вариант с использованием standalone сервера.
- Отключим запущенный веб-сервер (в моем случае это
NGINX). - Отправляем запрос на получение сертификата для доменов
example.comиwww.example.com
1 | ./letsencrypt-auto certonly --standalone -d example.com -d www.example.com |
Будет предложено ввести e-mail адрес для получения важных сообщений или восстановления забытого ключа.

После этого необходимо будет согласиться с лицензионным соглашением.

При успешном выполнении мы получим сертификат и всю цепочку:
1 | IMPORTANT NOTES: |
В директории /etc/letsencrypt/live/example.com/ мы обнаружим симлинки на файлы с ключами:
privkey.pem - приватный ключ для сертификата. Хранить строго в секрете; (Apache требует для SSLCertificateKeyFile и NGINX для ssl_certificate_key)
cert.pem - только сертификат сервера; (требует Apache для SSLCertificateFile)
chain.pem - все сертификаты, которые должны обслуживаться браузером БЕЗ сертификата сервера. (Apache требует для SSLCertificateChainFile)
fullchain.pem - вся цепочка, объединение chain.pem и cert.pem. (NGINX требует для ssl_certificate)
Конфигурируем используемый веб-сервер на работу с SSL-сертификатом и пользуемся.
Серификат выдается на короткий срок в целях безопасности. Чтобы не утруждать себя перевыпуском сертификатов на всех доменах, рекомендую воспользоваться Certbot или другими доступными клиентами