Для настройки HTTPS-сервера параметр ssl должен быть включен для прослушивающих сокетов в блоке сервера, а также должны быть указаны местоположения сертификата сервера и файлов закрытого ключа:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
...
}
Один сервер HTTP / HTTPS Можно настроить один сервер, который обрабатывает запросы HTTP и HTTPS:
server {
listen 80;
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
...
}
До версии 0.7.14 SSL не мог быть включен выборочно для отдельных сокетов прослушивания, как показано выше. SSL может быть включен только для всего сервера с использованием директивы ssl, что делает невозможным настройку одного HTTP / HTTPS-сервера. Параметр ssl директивы listen был добавлен для решения этой проблемы. Таким образом, использование директивы ssl в современных версиях не рекомендуется.
Серверы HTTPS на основе имен Общая проблема возникает при настройке двух или более серверов HTTPS, прослушивающих один IP-адрес:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
...
}
server {
listen 443 ssl;
server_name www.example.org;
ssl_certificate www.example.org.crt;
...
}