Translation(s): English - Français - Русский


Let’s Encrypt

Let’s Encrypt это автоматизированный центр сертификации, предоставляющий бесплатно (с проверкой домена (Domain Validation)), сертификаты TLS, которые получены с использованием протокола ACME.

Клиенты для Let’s Encrypt

Jessie Howto

Ручная установка сертификата и настройка nginx

Устанавливаем certbot:

apt-get install -t jessie-backports certbot

Устанавливаем сертификат вручную :

certbot certonly --webroot --agree-tos --email admin_mail@mysite.ru -w /var/www/mysite.ru/ -d mysite.ru -d www.mysite.ru

Ключи:

 * --email - указываем почту администратора сертификата
 * -w - используется для указания директории с сайтом
 * -d - используется для перечисления всех доменных имен на которых будет использоваться сертификат. Например указываем сайт с www и без www

В директории /etc/letsencrypt/live/mysite.ru/ должны появиться сертификаты: fullchain.pem и privkey.pem

Автоматическое продление сертификата

укажите в cron автоматические обновление на любые 2 даты, например на 10 и 25

0 0 10,25 * * certbot renew

Не забывайте! Чтобы применить новый сертификат, его нужно подгрузить самому nginx! Вам потребуется добавить в cron автоматический перезапуск настроек nginx.

Важное замечание: обновление сертификата делается только по протоколу http! Поэтому, если вы сделаете перенаправление всего трафика на https ( редирект с http на https), то укажите в настройках Nginx следующие правила:

server {
        listen   80;
        server_name mysite.ru www.mysite.ru;
        root /var/www/mysite.ru;
        location /.well-known/acme-challenge/ {
                access_log off;
                default_type "text/plain";
        }
        location / {
                 rewrite ^(.*)$ https://mysite.ru permanent;
        }
}
server {
        listen   443;
        server_name mysite.ru www.mysite.ru;
... (далее ваше конфиг сайта)
}

Подключение сертификата в nginx

Используйте только современное шифрование! Конечно в браузерах постепенно отключается поддержка небезопасных шифрований, но все же. Отключайте небезопасные шифрования в конфиге nginx!

server {
        listen   443;
        server_name mysite.ru www.mysite.ru;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/mysite.ru/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mysite.ru/privkey.pem;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers kEECDH+AESGCM+AES128:kEECDH+AES128:kRSA+AESGCM+AES128:kRSA+AES128:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
        ssl_prefer_server_ciphers on;
        add_header Strict-Transport-Security max-age=31536000;
... (далее ваш конфиг сайта)
}