欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

http升级https的一些坑(Nginx)

程序员文章站 2022-05-01 09:39:05
...

获取证书

升级到https第一步就是获取一张证书。

阿里云有免费的SSL证书(据说可以一个账号可以申请20个?)

然后申请步骤跳过。。。

申请完成大概就是酱紫的

http升级https的一些坑(Nginx)

点击下载进入到证书下载页面

http升级https的一些坑(Nginx)

证书放好

http升级https的一些坑(Nginx)

http升级https的一些坑(Nginx)

修改配置

官方默认给的配置如下

server {
    listen 443;
    server_name localhost;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   cert/214970146320352.pem;
    ssl_certificate_key  cert/214970146320352.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;
    ssl_prefer_server_ciphers on;
    location / {
        root html;
        index index.html index.htm;
    }
}

根据配置进行更改如下

upstream employers {
	server 127.0.0.1:8882 fail_timeout=0;
}

upstream platforms {
	server 127.0.0.1:8880 fail_timeout=0;
}

server {
    listen       80;
    server_name  test.*****.com;
	return 301 https://test.*****.com;
}



server {
	#listen 80;
    listen 443;
	#listen 8880;
    server_name localhost;
    ssl on;
    root /mnt/mobile;
    index index.html index.htm;
    ssl_certificate   cert/214970146320352.pem;
    ssl_certificate_key  cert/214970146320352.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;
    ssl_prefer_server_ciphers on;
	
	
	#解决vue刷新404问题
	location / {
		try_files $uri $uri/ @router;
		index index.html;
	}
	
	location @router {
		rewrite ^.*$ /index.html last;
	}
	
	location /employer/ {
		proxy_pass http://employers;
		proxy_set_header Host  $host;
		proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
		proxy_set_header X-Real-IP  $remote_addr; 
		
    }
		
	location /platform/ {
		proxy_pass http://platforms;
		proxy_set_header Host  $host;
		proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
		proxy_set_header X-Real-IP  $remote_addr; 
		
	}
   
}

修改完成后记得重启nginx以启用配置(nginx -s reload)

监听80端口使得http强制跳转了https

配置完成之后记得在服务器中开启443端口,开始没有开启443一直不通还郁闷了半天

由于前端使用了vue进行开发 所以在页面进行刷新的时候 会出现404异常

网上查了下 说是由于vue为单页面访问所有资源路径 页面就只有一个(一般为index.html)

所以在不改变url的情况下响应index.html资源的内容需要加上如下配置

#解决vue刷新404问题
	location / {
		try_files $uri $uri/ @router;
		index index.html;
	}
	
	location @router {
		rewrite ^.*$ /index.html last;
	}

然后基本ok!

http升级https的一些坑(Nginx)

但网上说配置以后对应微信支付会有影响 因为微信回调走的是http,这个目前还没有测试!待测试完补充。。。

升级https之后 微信浏览器支付需要将  微信支付授权目录更改为相应的https开头的路径,调起支付时的路径跳转也应该是对应的https路径