文章目录
- Windows 下用 OpenSSL 生成 SSL 密钥并配置 Nginx 教程
- 一、准备工作
- 1. 确认 OpenSSL
- 2. 确认 Nginx 路径
- 3. 确定访问地址
- 二、生成私钥和自签名证书
- 三、配置 Nginx
- 四、测试并启动 Nginx
- 五、浏览器访问
- 六、常用维护命令
- 七、注意事项
Windows 下用 OpenSSL 生成 SSL 密钥并配置 Nginx 教程
一、准备工作
1. 确认 OpenSSL
打开 Git Bash,执行:
openssl version能正常输出版本号即可。
2. 确认 Nginx 路径
假设你的 Nginx 解压在C:\nginx,后续命令和配置都以此为例,请根据实际路径替换。
3. 确定访问地址
假设你的内网 IP 是192.168.1.100,请替换成你自己的实际 IP。
二、生成私钥和自签名证书
创建进入文件夹
mkdir-p/c/nginx/confcd/c/nginx在 Git Bash 中执行,一条命令搞定:
MSYS_NO_PATHCONV=1openssl req-x509-newkeyrsa:2048-nodes\-keyoutserver.key\-outserver.crt\-days365-sha256\-subj"/C=CN/ST=Fujian/L=Fuzhou/O=Test/CN=192.168.1.100"说明:
| 参数 | 含义 |
|---|---|
MSYS_NO_PATHCONV=1 | 禁用路径转换 |
-x509 | 直接生成自签名证书,跳过 CSR |
-newkey rsa:2048 | 生成 2048 位 RSA 私钥 |
-nodes | 私钥不加密码,Nginx 重启时不需要输入密码 |
-keyout | 私钥输出路径 |
-out | 证书输出路径 |
-days 365 | 有效期 365 天 |
-subj | 证书主题信息,CN 填你的内网 IP |
注意:Git Bash 中 Windows 路径用
/c/开头,C:\nginx对应/c/nginx。
执行完成后,在C:\nginx\conf\目录下会生成两个文件:
server.key— 私钥server.crt— 证书
三、配置 Nginx
编辑C:\nginx\conf\nginx.conf,在http块中添加或修改一个server:
server { listen 443 ssl; server_name 192.168.1.100; ssl_certificate conf/server.crt; ssl_certificate_key conf/server.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { root html; index index.html index.htm; } }几点说明:
- Nginx for Windows 中路径用正斜杠
/,conf/server.crt是相对于nginx.exe所在目录的路径。 server_name填你的内网 IP。- 如果已有 80 端口的 server 块,保留即可,HTTPS 和 HTTP 可以共存。
四、测试并启动 Nginx
在 Git Bash 或 CMD 中,进入 Nginx 目录:
cd/c/nginx测试配置是否正确:
./nginx.exe-t输出syntax is ok和test is successful表示配置没问题。
启动 Nginx:
./nginx.exe如果 Nginx 已经在运行,重新加载配置:
./nginx.exe-sreload五、浏览器访问
用浏览器打开:
https://192.168.1.100由于是自签名证书,浏览器会提示"连接不安全"或"您的连接不是私密连接"。点击高级 → 继续访问即可。
六、常用维护命令
| 操作 | 命令 |
|---|---|
| 启动 Nginx | ./nginx.exe |
| 重新加载配置 | ./nginx.exe -s reload |
| 停止 Nginx | ./nginx.exe -s stop |
| 查看证书信息 | openssl x509 -in conf/server.crt -text -noout |
| 验证私钥是否匹配 | openssl x509 -noout -modulus -in conf/server.crt | openssl md5和openssl rsa -noout -modulus -in conf/server.key | openssl md5,两个 MD5 一致即匹配 |
七、注意事项
- 自签名证书只适合内网测试,对外正式网站请使用正规 CA 签发的证书。
- 如果更换了 IP 地址,需要重新生成证书,CN 必须与实际访问地址一致。
- 私钥文件
server.key不要外传。 - 如果 Windows 防火墙拦截了 443 端口,需要在防火墙中放行。
- 本教程未使用 SAN 扩展,因此证书只支持 CN 中填写的这一个 IP 地址。