问题描述
博主添加了一个二级域名
想用来部署其它web服务,二级域名
是没有ssl证书的,而一级域名
是已经配置好ssl。
配置好Nginx
后,在地址栏输入http://二级域名
却跳转到https://二级域名
,并且会提示不安全信息如“你与该网站的连接不是私密连接”。
点击继续访问,结果发现虽然地址是二级域名
,但内容根本不是我二级域名
配置的web服务,而是一级域名
的web服务,并且地址上https
标识有红色划线很难看。
问题原因
因为博主的ssl证书不是单域名证书
不是通配符证书
,在Nginx
配置中没有考虑多级域名情况,而偷懒把ssl配置在了http块
中
问题解决
将ssl配置移到server中,如下所示
# 一级域名
server {
listen 80;
listen [::]:80;
server_name xxx.com www.xxx.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate xxx.pem;
ssl_certificate_key xxx.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
# 。。。。。。
}
# 其它多级域名
server {
listen 80;
listen [::]:80;
server_name yy.xxx.com;
# 。。。。。。
}