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

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

程序员文章站 2024-01-12 14:48:40
...

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

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

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

相关标签: java