Differences
This shows you the differences between two versions of the page.
Previous revision | |||
— | linux_faq:lets_encrypt_certificates_on_ubuntu [2019/08/23 08:01] (current) – [Прописываем сертификаты в nginx] admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Скачиваем скрипт certbot-auto====== | ||
+ | wget https:// | ||
+ | chmod a+x certbot-auto | ||
+ | После этого нужно запустить его и он установит нужные зависимости: | ||
+ | sudo ./ | ||
+ | Теперь осталось положить этот скрипт куда-нибудь в систему, | ||
+ | sudo cp ./ | ||
+ | ====== Настройка web-сервера ====== | ||
+ | При получении сертификата скрипт проверяет что мы управляем доменом, | ||
+ | В противном случае - скрипт постоянно ругается с ошибкой: | ||
+ | Failed authorization procedure. wiki.autosys.tk (http-01): urn: | ||
+ | В **nginx** нужно закомментировать что-то такое: | ||
+ | location ~ /\. { deny all; | ||
+ | |||
+ | | ||
+ | ====== Получаем сертификат одной командой ====== | ||
+ | ./ | ||
+ | Сертификаты попадают в папку **/ | ||
+ | Если доменов несколько, | ||
+ | ./ | ||
+ | |||
+ | ====== Обновляем ====== | ||
+ | Проверяем что все обновляется: | ||
+ | certbot-auto renew --dry-run | ||
+ | Обновляем все сертификаты: | ||
+ | certbot-auto renew | ||
+ | |||
+ | ====== Прописываем сертификаты в nginx ====== | ||
+ | В секцию **server** сервера прописываем: | ||
+ | listen 443 ssl http2; | ||
+ | server_name | ||
+ | ssl_certificate / | ||
+ | ssl_certificate_key / | ||
+ | ssl_protocols TLSv1 TLSv1.1 TLSv1.2; | ||
+ | | ||
+ | Тут важно, прописать **fullchain.pem**, | ||
+ | |||
+ | И включаем сервер **HTTP** на 80 порту, который понадобится для обновления сертификатов, | ||
+ | < | ||
+ | listen | ||
+ | # | ||
+ | root /var/www/; | ||
+ | |||
+ | #Enable access to acme files | ||
+ | location ~ / | ||
+ | allow all; | ||
+ | access_log off; | ||
+ | log_not_found off; | ||
+ | } | ||
+ | return 301 https:// | ||
+ | } | ||
+ | </ | ||
+ | ====== Создаем задачу в cron для автообновления ====== | ||
+ | Создаем файлик **/ | ||
+ | < | ||
+ | # renew all lets_encrypt_certs | ||
+ | |||
+ | sed -i '/^\ *return 301 https/ s/ | ||
+ | service nginx reload | ||
+ | |||
+ | / | ||
+ | sed -i '/^#\ *return 301 https/ s/ | ||
+ | |||
+ | service nginx reload | ||
+ | |||
+ | </ | ||
+ | |||
+ | И делаем его исполняемым: | ||
+ | chmod a+x / | ||
+ | |||
+ | Скрипт отключает перенаправление с **HTTP** на **HTTPS**, перезагружает конфигурацию **nginx**, обновляет сертификат, | ||
+ | ====== Ошибки ====== | ||
+ | Однажды, | ||
+ | Error: couldn' | ||
+ | Оказалось, | ||
+ | Немного погуглив выискалсь такое решение - нужно удалить пару папок с клиентом **certbot** (из-под пользователя, | ||
+ | sudo rm -rf / | ||
+ | sudo rm -Rf ~/ | ||
+ | и переустановить **certbot**: | ||
+ | wget https:// | ||
+ | chmod a+x certbot-auto | ||
+ | sudo ./ | ||
+ | А когда установочный скрипт начнет спрашивать про домены - просто остановить его, введя " |