Как установить Let’s Encrypt на Ubuntu с nginx

Установка

apt install software-properties-common

add-apt-repository ppa:certbot/certbot

apt update

apt upgrade

apt install letsencrypt

Конфигурация

mcedit /etc/letsencrypt/cli.ini

В нём:

post-hook = service nginx reload

Далее в консоли:

certbot register --email ваш_email

Настройка для домена

Редактируем хост:

mcedit /etc/nginx/sites-available/...

Добавляем правило:

location ~ /.well-known {
    root /var/www/well-knowns/домен;
}

Далее в консоли:

mkdir -p /var/www/well-knowns/домен/.well-known

Создаём тестовый файл:

mcedit /var/www/well-knowns/домен/.well-known/test.txt

Перезагружаем nginx:

service nginx reload

Открываем в браузере http://домен/.well-known/test.txt

Удалить тестовый файл, если всё хорошо.

Проверяем работоспособность создания сертификата:

letsencrypt certonly --dry-run -d домен -d www.домен

При запросе webroot указываем /var/www/well-knowns/домен/

Если всё ок, то создаём уже сертификат по-настоящему:

letsencrypt certonly -d домен -d www.домен

Проверка

openssl x509 -text -in /etc/letsencrypt/live/домен/cert.pem

В nginx конфигурации хоста добавляем новые параметры:

ssl_certificate /etc/letsencrypt/live/домен/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/домен/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/домен/chain.pem;
ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:RSA+3DES:!NULL:!RC4;

В файле /etc/cron.d/certbot должен быть автозапрос продления сертификатов.

OCSP stapling

Браузеры, кроме Chrome, имеют свойство обращаться к CA для сверки со списком отозванных сертификатов, задерживая открытие страниц на секунды. Устранить эту задержку можно прикладывая подписанный ответ OCSP сервера к ответу при создании нового соединения.

tee /etc/nginx/conf.d/ssl_stapling.conf <<EOF
resolver 127.0.0.1;
ssl_stapling on;
ssl_stapling_verify on;
EOF

Если у вас нет локального кеширующего DNS сервера, в директиве resolver следует указать IP фактически используемого DNS сервера.

nameserver=$(grep nameserver /etc/resolv.conf | head -1 | cut -f2 -d" ")
sed -i s/127.0.0.1/$nameserver/ /etc/nginx/conf.d/ssl_stapling.conf
grep resolver /etc/nginx/conf.d/ssl_stapling.conf

Заметка основана на https://habrahabr.ru/post/318952/ и https://www.alexeykopytko.com/2017/free-ssl-from-letsencrypt/

 31   1 мес  
Популярное