Sazanof.ru Блог Letsencrypt - установка бесплатного ssl сертификата на ваш сайт

Letsencrypt - установка бесплатного ssl сертификата на ваш сайт

Letsencrypt - установка бесплатного ssl сертификата

Сейчас сертификаты безопасности - обычное дело. Все сайты стараются перейти на защищенное ssl соединение. Долго рассказывать про это не буду. Захотите, найдете сами информацию о том, сто такое ssl сертификат в поисковиках.

Сегодня мне пришлось иметь делао с сертификатом Letsencrypt. Необходимо было установить его на выделенный сервер. Собственно, запись в первую очередь для вас и для меня (уж очень удобно на своем сайте держать разные мануалы и не искать потом).

Letsencrypt - установка сертификата

Начинаем с того, что соединяемся с нашим сервером по ssh через putty.

В моем примере пойдет речь о том как получить бесплатный ssl сертификат Letsencrypt и установить его на сервер, работающий на Ubuntu 14.04 LTS. Но это далеко не означает, что этот мануал не пригодится вам, если вы решили установить сертификат Letsencrypt скажем, на CentOS 6 или 7 версии.

Так как качать дистрибутив проще через git, установим его сразу командой

apt-get install git

Итак, перейдем в домашнюю директорию

cd /home/

и закачем дистрибутив. Потом перейдем в корневую папку с клиентов Letsencrypt

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

Для проверки работоспособности клиена сертификации Letsencrypt запускаем с ключом --help скрипт letsencrypt-auto

./letsencrypt-auto --help

Создание SSL сертификата Letsencrypt

Теперь, останавливаем nginx, для того, чтобы приступить к созданию самого сертификата и следующей командой создаем сам бесплатный сертификат.

service nginx stop
./letsencrypt-auto certonly --standalone -d sazanof.ru -d www.sazanof.ru

Если видим сообщение о том, что у нас успешно создался сертификат, хлопаем в ладоши и запускаем nginx

service nginx start

Настройка HTTP / HTTPS в конфигурации NGINX

Для того, чтобы подключить сертификат к серверу, откроем конфигурационный файл домена, располагающийся в директории ngninx и добавить в него следующие строки (я подбирал для себя, так что, экспериментируйте).

На всякий случай, сделайте резервную копию старого файла конфигурации!

listen 443 ssl;
server_name www.sazanof.ru sazanof.ru;
# переадресация с http на https
if ( $scheme = "http" ) {
    rewrite ^/(.*)$ https://sazanof.ru/$1 permanent;
}
# / переадресация с http на https
ssl_certificate         /etc/letsencrypt/live/sazanof.ru/fullchain.pem;
ssl_certificate_key     /etc/letsencrypt/live/sazanof.ru/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/sazanof.ru/fullchain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;

# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;

 Не забываем перезагрузить nginx, после того, как внесли изменения в конфигурацию

nginx service reload
или
nginx service restart

Автопродление бесплатного сертификата Letsencrypt

Для того, чтобы сертификат автоматически продлевался, необходимо в crontab добавить запуск скрипта /home/letsencrypt/letsencrypt-auto renew. 

Ну вот, sll сертификат letsencrypt получен и установлен на сервер.