nginx http转https (前后台分离项目 vue+springboot)

注:好记性不如烂笔头
项目已经搞完了,部署在nginx上,不过是http的。现在需要转为https。其实和一开始搭建https没啥区别,(唯一区别就在你之前创建的nginx可能不支持ssl,这里需要下载SSL模块覆盖之前的)

1下载SSL证书,可以通过阿里云下载,有免费版,但只支持一年,每年要定期更新。记得下载nginx的,下载解压后会有.pem,和.key两个文件

nginx http转https (前后台分离项目 vue+springboot)_第1张图片
我这里拿的是客户购买的证书 pfx格式的,还需要转成pem文件才能使用。
可以到https://www.itrus.cn/service_caChange.html这个网站去转,
nginx http转https (前后台分离项目 vue+springboot)_第2张图片
源证书密码需要有,没有的话问客户要, 目标私钥密码可以不填写,转换后解压文件,会有 server.pem,和server.key两个文件。

有了证书之后,记得将它上传至服务器,我这里上传到
/usr/local/nginx/cert 文件夹下,cert目录是自己创建的

2.nginx安装SSL模块
查看nginx原有的模块

/usr/local/nginx/sbin/nginx -v

在configure arguments:后面显示的原有的configure参数如下:

--prefix=/opt/software/nginx --with-http_stub_status_module

编译SSL模块
切换到源码包

cd /usr/local/nginx-1.14.1

编译ssl模块

./configure --prefix=/opt/software/nginx --with-http_stub_status_module --with-http_ssl_module

运行上面的命令即可,等配置完

配置完成后,运行命令

make

这里千万不要 make install哦。

备份Nginx
然后备份原有已安装好的nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

覆盖Nginx
这个时候nginx要停止状态:

查看进程,找到 nginx master的进程。

ps -ef |grep nginx

关闭 nginx master 进程,注意修改下面pid的参数。

kill -QUIT [nginx master pid]

然后将刚刚编译好的 Nginx 覆盖掉原有的 Nginx

cp ./objs/nginx /usr/local/nginx/sbin/

测试
然后启动 nginx,仍可以通过命令查看是否已经加入成功。

cd /usr/local/nginx

启动

./sbin/nginx

查看安装模块

/opt/software/nginx/sbin/nginx -v

3.配置nginx.conf
打开你的usr/local/conf/nginx.conf文件

server {
     
        listen       443 ssl;
        #域名/主域名和二级域名都行
        server_name  www.baidu.com;
		#证书存放地址
        ssl_certificate      /usr/local/nginx/cert/server.pem;
        ssl_certificate_key  /usr/local/nginx/cert/server.key;

		ssl_session_timeout 5m;
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
		ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
		ssl_prefer_server_ciphers on;
		
		#这里是后台接口请求地址,
		location /api {
      
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $http_host;
			proxy_set_header X-Forwarded-Proto https;
			proxy_redirect off;
			proxy_connect_timeout      240;
			proxy_send_timeout         240;
			proxy_read_timeout         240;
			# note, there is not SSL here! plain HTTP is used
            proxy_pass  http://127.0.0.1:8868/lw-tender;   #接口地址   
        }
		
		
		#存放文件地址
        location /data {
     
			alias /var/www/html/file/;   
			autoindex on;
        }
		#存放绝对路径静态资源地址
		location /page/ {
     
			alias /var/www/html/file/;   
			autoindex on;
        }
		
		#域名访问的vue项目地址
        location / {
     
			 root /var/www/html/dist/; 
			 index index.html index.htm; 
        }
		
    }

配置完成后记得重启

/usr/local/nginx/sbin/nginx -s reload

4.vue项目更改一下你的接口访问路径
nginx http转https (前后台分离项目 vue+springboot)_第3张图片

你可能感兴趣的:(java)