
하나의 IP 주소에 가상 호스트가 있는 nginx 웹 서버가 있습니다. http를 사용하는 일부 도메인: ex1.com, ex2.com, ex3.com 및 https를 사용하는 도메인 1개: se1.com.
ex1.com, ex2 또는 ex3에서 httpS를 사용하려고 하면 다음 내용이 나타납니다.https://se1.com대지. 어떻게 거부할 수 있나요?
기본 사이트 http 구성:
server {
listen 80 default;
server_name localhost;
deny all;
}
기본 http 가상 호스트 구성:
server {
listen 80;
server_name ex1.com;
root /var/www/ex1.com;
index index.html;
}
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;
}
답변1
거의 동일한 질문의 솔루션과 최고의 Google 결과(https://serverfault.com/a/382779/3256)은 SSL이 아닌 각 사이트에 대해 서버 블록을 추가하고 http 사이트에 다시 쓰기를 추가하여 https 주소에 있는 모든 사람을 http 주소로 반송하는 것입니다. 투박하지만 효과적이다!
예를 들어:
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;
}