묻고답하기
SSL + nginx 작업중인데 문제가 한가지 있어 질문드립니다.
2012.09.15 17:23
인증서를 발급받아서 nginx에 연동을 했는데
문제가 한가지 생겼습니다.
파이어폭스나 크롬에서는 연동된것이 제대로 동작하고 에러가 뜨지 않는데 비해
유독 익스에서는 인증서가 꼬여서 제대로 인식을 못하고 있네요.
https://web5.entertm.net
https://starhive.net
https://help.entertm.net
현재 3개 도메인의 SSL을 설정한 상태인데
왜 익스에서 인식이 제대로 안되는지 모르겠네요.
아래는 설정 내역입니다.
------------------------------------------
# You may add here your
# server {
# ...
# }
# statements for each of your virtual hosts
server {
listen 443;
server_name web5.entertm.net;
ssl on;
ssl_certificate /var/www/web5entertm.crt;
ssl_certificate_key /var/www/web5entertm.key;
ssl_session_timeout 10m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host web5.entertm.net;
proxy_pass http://web5.entertm.net;
}
}
server {
listen 443;
server_name starhive.net;
ssl on;
ssl_certificate /var/www/starhivenet.cert;
ssl_certificate_key /var/www/starhivenet.key;
ssl_session_timeout 10m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host starhive.net;
proxy_pass http://starhive.net;
}
}
server {
listen 443;
server_name help.entertm.net;
ssl on;
ssl_certificate /var/www/helpentertmnet.crt;
ssl_certificate_key /var/www/helpentertmnet.key;
ssl_session_timeout 10m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host help.entertm.net;
proxy_pass http://help.entertm.net;
}
}
server {
listen 443;
server_name main.emulpia.com;
ssl on;
ssl_certificate /var/www/emulpia-www2.cert;
ssl_certificate_key /var/www/emulpia-www2.key;
ssl_session_timeout 10m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host www2.emulpia.tk;
proxy_pass http://www2.emulpia.tk;
}
}
server {
server_name www2.emulpia.tk;
listen 80;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host www2.emulpia.tk;
proxy_pass http://www2.emulpia.tk;
}
}
server {
server_name starhive.net;
listen 80;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host starhive.net;
proxy_pass http://starhive.net;
}
}
server {
server_name web5.entertm.net;
listen 80;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host web5.entertm.net;
proxy_pass http://web5.entertm.net;
}
}
server {
server_name help.entertm.net;
listen 80;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host help.entertm.net;
proxy_pass http://help.entertm.net;
}
}
server {
listen 443;
server_name www2.emulpia.tk;
ssl on;
ssl_certificate /var/www/emulpia-www2.cert;
ssl_certificate_key /var/www/emulpia-www2.key;
ssl_session_timeout 10m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host www2.emulpia.tk;
proxy_pass http://www2.emulpia.tk;
}
}
#server {
# server_name ssl.entertm.net;
# listen 80;
# location / {
# root /var/www/ssl;
# }
# location /main {
# proxy_redirect off;
# rewrite /s /main break;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header Host www2.emulpia.tk;
# proxy_pass http://www2.emulpia.tk/s/;
# include /var/www/ssl/main/xe.conf;
# }
#}
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www;
index index.html index.htm;
}
location /doc {
root /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}
location /images {
root /usr/share;
autoindex on;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /var/www/nginx-default;
#}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#includefastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#listen 8000;
#listen somename:8080;
#server_name somename alias another.alias;
#location / {
#root html;
#index index.html index.htm;
#}
#}
# HTTPS server
#
#server {
#listen 443;
#server_name localhost;
#ssl on;
#ssl_certificate cert.pem;
#ssl_certificate_key cert.key;
#ssl_session_timeout 5m;
#ssl_protocols SSLv3 TLSv1;
#ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
#ssl_prefer_server_ciphers on;
#location / {
#root html;
#index index.html index.htm;
#}
#}
SSL은 레벨에 따라 지원하는 방식이 다릅니다. 예를들어 StartSSL에서 무료 SSL을 사용한다면 각 도메인별 vhost 마다 포트넘버를 각각 부여해야 합니다. SSL은 기본 443 포트를 사용하지만 하나의 도메인만 적용할 수 있으며 다른 도메인의 경우 444 라던가 443이 아닌 다른 포트넘버를 부여해야 합니다. 따라서 접속 주소 역시 https://URL:444 같은 방식으로 포트번호를 별도 부여해 주셔야 합니다. 일반적으로 80번 포트를 통해 http://URL 같은 주소로 접속하여 index 파일을 가장 먼저 로딩하므로 그 파일에서 자바 스크립트 등을 통해 location=https://URL:444 와 같이 리다이렉트를 설정해 주시면 좋습니다.