
Tenho um servidor web nginx com hosts virtuais em um endereço IP. Alguns domínios que funcionam com http: ex1.com, ex2.com, ex3.com e um domínio com https: se1.com.
Quando tento usar httpS em ex1.com, ex2 ou ex3, recebo conteúdo dehttps://se1.comsite. Como posso negar isso?
Configuração http do site padrão:
server {
listen 80 default;
server_name localhost;
deny all;
}
Configuração http vhost básica:
server {
listen 80;
server_name ex1.com;
root /var/www/ex1.com;
index index.html;
}
configuração do site https:
server {
listen 443;
server_name se1.com;
ssl on;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/nginx/ssl/se1.crt;
ssl_certificate_key /etc/nginx/ssl/se1.key;
root /var/www/se1.com;
index index.html;
}
Responder1
A solução de uma pergunta quase idêntica e o principal resultado do Google (https://serverfault.com/a/382779/3256), é adicionar blocos de servidor para cada um dos seus sites não SSL e adicionar uma reescrita ao site http, transferindo assim qualquer pessoa que acabe no endereço https para o endereço http. Desajeitado, mas eficaz!
Por exemplo:
server {
listen 443 ssl;
server_name ex1.com;
ssl on;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/nginx/ssl/se1.crt;
ssl_certificate_key /etc/nginx/ssl/se1.key;
rewrite ^ http://$server_name$request_uri? permanent;
}