После получения сертификата для HTTPS нужно настроить nginx на его использование. Пусть наши ключи лежат в /etc/letsencrypt/live/example.com , где fullchain.pem — это вся цепочка сертификатов, а privkey.pem — это сертификат сервера.
У nginx файл настроек обычно расположен по пути /etc/nginx/sites-available/default. В файле настроек nginx уже есть настройки по умолчанию для HTTPS. Они закомментированы. Нужно их откомментировать и поправить несколько строк.
Закрытый ключ:
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem
Вся цепочка:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem
Заголовок, чтобы автоматически использовался HTTPS:
add_neader Strict-Transport-Security 'max-age=604800';
В итоге секция server для HTTPS будет выглядеть примерно так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# HTTPS server # server { listen 443; server_name example.com; root html; index index.html index.htm; ssl on; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; #Automatic redirect to HTTPS[<0;36;11M add_header Strict-Transport-Security 'max-age=604800'; location / { try_files $uri $uri/ =404; } } |
Также нужно настроить перенаправление с http на https для порта 80 (это уже другая секция server для HTTP):
1 2 3 4 5 6 7 8 9 10 11 12 |
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html index.htm; server_name example.com; return 301 https://example.com/$request_uri; ... |
Федор, не учи детишек плохому.
Правильную конфигурацию для своего веб-сервера лучше получать через
https://mozilla.github.io/server-side-tls/ssl-config-generator