Windows 下用 OpenSSL 生成 SSL 密钥并配置 Nginx 教程

文章目录

Windows 下用 OpenSSL 生成 SSL 密钥并配置 Nginx 教程

一、准备工作

1. 确认 OpenSSL

打开 Git Bash,执行:

bash 复制代码
openssl version

能正常输出版本号即可。

2. 确认 Nginx 路径

假设你的 Nginx 解压在 C:\nginx,后续命令和配置都以此为例,请根据实际路径替换。

3. 确定访问地址

假设你的内网 IP 是 192.168.1.100,请替换成你自己的实际 IP。


二、生成私钥和自签名证书

创建进入文件夹

bash 复制代码
mkdir -p /c/nginx/conf
cd /c/nginx

在 Git Bash 中执行,一条命令搞定:

bash 复制代码
MSYS_NO_PATHCONV=1 openssl req -x509 -newkey rsa:2048 -nodes \
  -keyout server.key \
  -out server.crt \
  -days 365 -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:

nginx 复制代码
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 目录:

bash 复制代码
cd /c/nginx

测试配置是否正确:

bash 复制代码
./nginx.exe -t

输出 syntax is ok 和 test is successful 表示配置没问题。

启动 Nginx:

bash 复制代码
./nginx.exe

如果 Nginx 已经在运行,重新加载配置:

bash 复制代码
./nginx.exe -s reload

五、浏览器访问

用浏览器打开:

复制代码
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

七、注意事项

  1. 自签名证书只适合内网测试,对外正式网站请使用正规 CA 签发的证书。
  2. 如果更换了 IP 地址,需要重新生成证书,CN 必须与实际访问地址一致。
  3. 私钥文件 server.key 不要外传。
  4. 如果 Windows 防火墙拦截了 443 端口,需要在防火墙中放行。
  5. 本教程未使用 SAN 扩展,因此证书只支持 CN 中填写的这一个 IP 地址。
相关推荐
百事牛科技6 小时前
Excel的三种密码:防看、防存、防乱改,各管各的
windows·excel
Lsetea1 天前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书
the3clipse1 天前
MPC-HC 下载安装与最佳配置教程:免费开源、轻量无广告、支持 4K 硬解的 Windows 播放器
windows·播放器·安装教程·硬件加速·mpc-hc·字幕设置·lav filters
独隅1 天前
WebStorm Windows 版 React / Next.js 实战替换指南
javascript·windows·webstorm
陈工大模型1 天前
2026年11月最新免费解压软件横评:7-Zip 、 Win解压缩名列前茅
windows·软件工程·7-zip·压缩软件
达梦产品与服务1 天前
SQLark V4.2 更新 | 新增TiDB、SSL安全连接、数据字典、清空/截断表等40+项功能已上线!
数据库·安全·tidb·ssl
中二骚年2 天前
Windows 安全中心 / 防火墙故障,calc和Microsoft Store,终端(管理员)无法正常打开。 原因 + 修复方案
windows·安全·microsoft
万联WANFLOW2 天前
CVE-2026-98432 等漏洞自查:AI 查出的 Linux、Windows 漏洞,运维怎么确认受不受影响
linux·运维·windows·网络安全
AlanAshley2 天前
Windows 中导致延迟的软硬件及协议比重
windows
yuezhilangniao2 天前
win10中文 以及 PowerShell 开发日常
windows·powershell