Nginx下https模式下,不带www的域名无法自动跳转到带www域名的问题

操作系统:centos7
Nginx版本:1.17.3

问题描述:
现在公司官网网址,假设http://www.aaaa.com,需要做ssl认证。公司申请了一个包含域名www.aaaa.com(重点)的ssl证书。我在Nginx上配置了ssl证书后,发现访问https://www.aaaa.com正常,但是访问https://aaaa.com就提示不安全的链接-------原因:ssl证书只包含了www.aaaa.com域名,未包含aaaa.com域名导致。
因为某些原因(不想被领导再鄙视一顿),不想重新申请包含aaaa.com域名的ssl证书,所以打算配置Nginx来实现访问https://aaaa.com时自动跳转到https://www.aaaa.com。
于是按照网上的帖子,做了如下设置:

server {
        listen       443 ssl;
        server_name  aaaa.com;
	    return 301 https://www.aaaa.com$request_uri;
}
server {
        listen       443 default_server ssl;
        server_name  www.aaaa.com;
        
        ssl_certificate      com.crt;#配置证书位置
        ssl_certificate_key  com.key;#配置秘钥位置
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
	
		gzip on;
        gzip_comp_level 6;
        gzip_proxied any;
        gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript application/x-font-woff image/jpeg image/gif image/png;
		
        location / {
            root   html;
            index  index.html index.htm;
        }
}

好了,问题来了:
访问https://aaaa.com时,死活不自动跳转到https://www.aaaa.com啊!!!!

各种尝试以后发现:
以上Nginx配置,能实现访问https://aaaa.com时自动跳转到https://www.aaaa.com的功能,是建立在ssl证书同时包含aaaa.com和www.aaaa.com2个域名的前提下!!!!!!!!

好吧,进入死循环了~~~因为ssl包含域名不全所以想自动跳转;结果想自动跳转得先把ssl证书域名补全。

没辙了,只好让领导,再去跟领导的领导提申请,重新申请包含全部域名的ssl证书了。

你可能感兴趣的:(Nginx下https模式下,不带www的域名无法自动跳转到带www域名的问题)