Достаточно следующего:
server {
listen 443 ssl http2;
server_name домен_здесь;
ssl_certificate /путь/к/сертификату;
ssl_certificate_key /путь/к/ключу;
тут ваш location {}
}
Если переадресовывать с HTTP на HTTPS то выше добавляете:
server {
listen 80;
server_name домен_здесь;
return 301 https://$server_name$request_uri;
}
Также рекомендую посмотреть
https://mozilla.github.io/server-side-tls/ssl-conf... - он в зависимости от версии Nginx и OpenSSL, а так же ваших предпочтений позволяет подобрать актуальные шифры чтобы поддерживать максимально возможный уровень безопасности.
Я себе в
/etc/nginx/conf.d/tls.conf
положил достаточно строгие настройки без старых протоколов и слабых шифров, которые максимально безопасны, но работают лишь в актуальных версиях браузеров (IE9-10, древние Firefox, Chrome и Safari могут не работать совсем):
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_dhparam /etc/ssl/dhparam.pem;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000;";
ssl_stapling on;
ssl_stapling_verify on;
Это достаточно минималистичный конфиг без мишуры и без правок родных конфигурационных файлов Nginx (упрощает обновление). dhparam.pem вам придется сгенерировать, рекомендую 4096bit, как - найти очень легко.
Указанных опций более чем достаточно, просто поищите что каждая из опций значит и подкорректируйте по вкусу.