在安装了nginx的前提下,继续以下操作,未安装请先安装,这里不过多赘述
1. 安装 HTTPS证书工具 OpenSSL
- 下载完成安装到任意目录,我这里是安装在项目目录中
2. 配置 OpenSSL 环境变量
-
在系统变量中添加OpenSSL,地址为安装路径
-
在系统变量 PATH 中添加 %OpenSSL%
3.使用OpenSSL命令生成https证书
- 在 nginx文件夹下创建ssl文件夹,用于存放证书
- 在创建的ssl文件夹下打开系统窗口(这里以powershell为例,不建议用gitBash 有涉及到选择的地方,gitBash无法选择)
- 创建私钥,设置一个自己的密码,后面会用到
openssl genrsa -des3 -out publish.key 1024 //publish 名称可自己取,这里以publish为例
- 命令执行后效果如下,ssl文件夹下出现私钥文件
- 创建 csr 证书,同理会出现csr文件
openssl req -new -key publish.key -out publish.csr
如上图所示,执行上述命令后,需要输入信息。输入的信息中最重要的为 Common Name,这里输入的域名即为我们要使用https访问的域名,及nginx配置文件中server下的server_name。
- 生成 crt 证书,同理会出现crt文件
openssl x509 -req -days 365 -in publish.csr -signkey publish.key -out publish.crt
- 生成 免Pem密码证书,这个可以避免出现配置或操作nginx时避免每次输入密码或无法启动的问题
openssl rsa -in publish.key -out publish.key.unsecure
- 最终效果如下
4.修改 nginx 下的 nginx.conf配置文件
- 打开nginx文件夹下\conf\nginx.conf
server { listen 443 ssl; server_name localhost; ssl_certificate D://publish//nginx-1.21.1//ssl//publish.crt; ssl_certificate_key D://publish//nginx-1.21.1//ssl//publish.key.unsecure; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
- 重启 nginx
nginx -s reload
- 查看 nginx 启动状态,启动成功后,使用https进行访问(以上为自签证书,可做为测试使用,但可能会提示不安全,需自行购买或申请证书)