SSL и Let’s Encrypt

О Let’s Encrypt я думаю все слышали. Кто не слышал — прошу на Википедию.

Собственно, поднимая новый блог, да еще и на своем сервере, решил попробовать. Есть замечательная ознакомительная статья в блоге Interface31.ru, в которой как всегда — подробно и ясно описывается что это и зачем.

Для тех, кому хочется (как и мне) попробовать на скорую руку — есть проект certbot, который позволяет легко и просто автоматизировать процесс работы с этим удостоверяющим центром. Заходим, выбираем Web-сервер и ОС сервера (например Apache + Ubuntu) и выполняем инструкции. Кто захочет более глубокого понимания процесса — есть статья на ХабраХабр.

По окончанию всех операций, проверить надежность можно с помощью сайта SSLLabs.

Например, для моего сайта, после «тупого» применения «в лоб»  утилиты certbot, он выдал рейтинг А.

Собственно, что происходит при «дефолтом использовании» — немного углубимся в механику процесса.

Вас прогоняют по небольшому списку вопросов, одним из которых является вопрос — на какое имя сайта Вы хотите получить сертификат. Плюс, еще одним вопросом является — хотите Вы оставить обе версии (http и httpS) или только безопасную, или с перенаправлением.  Я выбрал последнее. Как итог — certbot берет Ваш конфигурационный файл, редактирует его, добавляя директиву «SSLEngine on», ссылки на сертификат и ключ + подключает свой конфиг с параметрами:

SSLCertificateFile /etc/letsencrypt/live/kazarin.online/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/kazarin.online/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

+ устанавливается/включается плагин ssl для apache. Это можно увидеть по логу выполнения certbot.

В оригинальный же конфиг (который для http версии сайта) добавляется команда перенаправления на httpS версию сайта (перед этим ставится и включается нужный плагин для Apache- rewrite):

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.kazarin.online [OR]
RewriteCond %{SERVER_NAME} =kazarin.online
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Поэтому в механизме работы нет ничего «эдакого». По сути, если бы Вы вручную получали сертификат от любого другого поставщика (GlobalSign, Comodo, etc.) те же действия проделали бы руками. Разве что в настройках SSL была бы еще одна директива — указание промежуточной цепочки сертификатов.

SSLCertificateChainFile /path/to/chain.crt

Для желающих получить А+ статус, наткнулся вот на такой мануал. Правда не довелось его еще на себе проверить(