本地Nginx无证书,配置https

前言
今天前端小姐姐找我要https的接口,说有个功能必须用https的才能用。平时后端接口都是http的,只有上线了,用Nginx反向代理后才变成https接口。找了几篇博客,都是线上的部署,没有本地无证书的部署方式,最终CSDN+ChatGPT轮番搜索下,发现了以下方法可以实现。

一. 准备工作

- 安装openssl

该软件的功能就在本地生成证书
下载地址
选择对应版本,下载好后安装过程中选择默认选项
安装完成后,用管理员身份打开Dos命令窗口,然后进入openssl安装目录下的bin文件夹中

- 创建空文件

到nginx安装目录下,创建个名字为cert的文件夹
然后在该文件夹下面创建两个空文件,文件名字分别为private.keycertificate.csr
我的nginx安装目录为C:\work\Java\nginx\nginx-1.9.10

- 生成证书

(1)生成私钥文件

./openssl genpkey -algorithm RSA -out C:\work\Java\nginx\nginx-1.9.10\cert\private.key

(2)生成自签名证书请求文件

 ./openssl req -new -key C:\work\Java\nginx\nginx-1.9.10\cert\private.key -out C:\work\Java\nginx\nginx-1.9.10\cert\certificate.csr

执行该命令后,会让你输入各种信息,安装步骤,输入就可以了

(3)成自签名证书文件

./openssl x509 -req -in C:\work\Java\nginx\nginx-1.9.10\cert\certificate.csr -signkey C:\work\Java\nginx\nginx-1.9.10\cert\private.key -out C:\work\Java\nginx\nginx-1.9.10\cert\certificate.crt

输入该命令后出现Certificate request self-signature ok,则说明证书创建成功了
也可以到cert文件夹中去看看是否生成了个名为certificate.crt的文件
该证书有效期只有一个月

二. Nginx配置

server {
   listen       443;
   ssl on;
   server_name  localhost;
   ssl_certificate    ../cert/certificate.crt;
   ssl_certificate_key  ../cert/private.key;
   location /zhgdh5-api/ {
	    proxy_pass  http://localhost:8110/;
		proxy_set_header Host $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header REMOTE-HOST $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}
}

如果已经启动nginx,重新载入下nginx.exe -s reload

三.测试

https://localhost/zhgdh5-api/swagger-ui.html

至此大功告成,可以给前端使用了

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值