Я пытаюсь включить SSL в моей текущей конфигурации Nginx, которая работает нормально. Однако мне интересно, можно ли сделать это вместе с HTTP, чтобы мне не нужен был другой раздел сервера {}, который был бы просто копией раздела http.
Я думал, что следующее сработает, однако при доступе к http: // получаю следующее.
400 Bad Request
The plain HTTP request was sent to HTTPS port
Конфигурация Nginx:
ssl_certificate /etc/nginx/ssl/domains.pem;
ssl_certificate_key /etc/nginx/ssl/server.key;
server {
listen 80;
listen 443;
//other configuration
}
Вы можете иметь несколько Слушать директив на директиву сервера.
http {
server {
listen 80;
listen 443 default ssl;
<config stuff including ssl>
}
}
Я делаю нечто подобное с include, так что строки конфигурации, связанные с ssl, применяются только к одному из слушателей.
http {
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl_keys/server.crt ;
ssl_certificate_key /etc/nginx/ssl_keys/server.key ;
include otherstuff.conf;
}
server {
listen 80;
include otherstuff.conf;
}
}