前言
今天前端小姐姐找我要https的接口,说有个功能必须用https的才能用。平时后端接口都是http的,只有上线了,用Nginx反向代理后才变成https接口。找了几篇博客,都是线上的部署,没有本地无证书的部署方式,最终CSDN+ChatGPT轮番搜索下,发现了以下方法可以实现。
一. 准备工作
- 安装openssl
该软件的功能就在本地生成证书
下载地址
选择对应版本,下载好后安装过程中选择默认选项
安装完成后,用管理员身份打开Dos命令窗口,然后进入openssl安装目录下的bin文件夹中
- 创建空文件
到nginx安装目录下,创建个名字为cert的文件夹
然后在该文件夹下面创建两个空文件,文件名字分别为private.key
、certificate.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
文章来源:https://www.toymoban.com/news/detail-695616.html
至此大功告成,可以给前端使用了文章来源地址https://www.toymoban.com/news/detail-695616.html
到了这里,关于本地Nginx无证书,配置https的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!