Windows系统使用OpenSSL生成自签名证书

Nginx服务器添加SSL证书。

要在Windows系统的Nginx Web服务器上使用OpenSSL生成证书,并确保该证书能在局域网内被计算机信任,你可以按照以下详细步骤进行操作:

一、生成证书

  1. 下载并安装OpenSSL

    • 从OpenSSL的官方网站下载适用于Windows的版本。
    • 安装OpenSSL,并配置环境变量。将OpenSSL的安装路径(例如C:\Program Files\OpenSSL-Win64\bin)添加到系统的Path环境变量中。
  2. 生成服务器私钥

    • 打开命令提示符(CMD),切换到你想保存证书的目录。
    • 执行以下命令生成服务器私钥(server.pemserver.key):
    shell 复制代码
    openssl genrsa -out server.pem 2048
    openssl rsa -in server.pem -out server.key
  3. 生成证书签名请求(CSR)

    • 执行以下命令生成CSR文件(server.csr):
    shell 复制代码
    openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=YourState/L=YourCity/O=YourOrganization/OU=YourUnit/CN=YourServerName"
    • 注意将/C=CN/ST=YourState/L=YourCity/O=YourOrganization/OU=YourUnit/CN=YourServerName中的占位符替换为你的实际信息。其中CN(Common Name)必须是你希望证书绑定的域名或IP地址,在局域网中通常是服务器的IP地址或局域网内的域名。
  4. 生成自签名SSL证书

    • 执行以下命令生成自签名SSL证书(server.crt):
    shell 复制代码
    openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
  5. 生成PFX证书(可选,但Windows常用)

    • 如果你希望将证书和私钥打包成一个PFX文件,可以执行以下命令:
    shell 复制代码
    openssl pkcs12 -export -in server.crt -inkey server.key -out server.pfx -name server
    • 在此过程中,你需要输入一个密码来保护PFX文件。

二、配置Nginx使用证书

  1. 将证书文件复制到Nginx目录

    • 将生成的server.crtserver.key(或server.pfx,如果使用PFX文件)复制到Nginx安装目录下的conf文件夹或其他你指定的证书文件夹中。
  2. 修改Nginx配置文件

    • 打开Nginx配置文件(通常是nginx.conf),并添加或修改HTTPS服务器配置部分:
    nginx 复制代码
    server {
    	listen 443 ssl;
    	server_name YourServerName;  # 可以填IP地址或域名
    	ssl_certificate ssl/server.crt;  # 证书文件路径
    	ssl_certificate_key ssl/server.key;  # 私钥文件路径(如果使用PFX文件,则不需要此行,并在ssl_certificate行指定PFX文件)
    	# 如果使用PFX文件,则配置如下:
    	# ssl_certificate ssl/server.pfx;
    	# ssl_certificate_key 不用指定,因为PFX文件已包含私钥
    	# 其他SSL配置...
    	
    	location / {
    		root html;
    		index index.html index.htm;
    		# 其他配置...
    	}
    }
  3. 重启Nginx

    • 保存并关闭Nginx配置文件,然后重启Nginx以使配置生效。

三、局域网内信任证书

  1. 将根证书(CA证书)导入到局域网内的计算机

    • 在这个场景中,由于你使用的是自签名证书,因此你的计算机需要信任这个自签名的根证书。
    • 将生成的server.crt(或CA证书,如果你有一个单独的CA证书)复制到每台需要信任该证书的计算机上。
  2. 在Windows上导入证书

    • 打开"控制面板" > "管理工具" > "证书 - 当前用户"或"证书 - 计算机"。
    • 选择"受信任的根证书颁发机构"或适当的存储位置。
    • 右键点击"证书"文件夹,选择"所有任务" > "导入",然后按照向导导入你的证书文件(server.crt)。
  3. 验证信任

    • 在浏览器中访问使用HTTPS的Nginx服务器,如果证书被正确导入并信任,则浏览器将不会显示安全警告。

请注意,自签名证书虽然适用于内部或测试环境,但在生产环境中通常建议使用由受信任的证书颁发机构(CA)签发的证书,以确保更高的安全性和用户信任度。

补充:局域网内证书信任问题

因为缺少CA证书,故以上第三章节也不能解决证书信任问题。

要制作局域网内被信任的证书,请移步:局域网内搭建浏览器可信任的SSL证书

相关推荐
肠胃炎3 小时前
挂载方式部署项目
服务器·前端·nginx
曲幽7 小时前
FastAPI实战:WebSocket vs Socket.IO,这回真给我整明白了!
python·websocket·nginx·socket·fastapi·web·async·socketio
袁庭新10 小时前
M系列芯片Mac上通过Homebrew一键安装/卸载Nginx并上线项目全指南
运维·nginx·macos·袁庭新·袁庭新ai
Densen201410 小时前
发布blazor应用到Linux, 使用nginx作为WebSocket代理
linux·websocket·nginx
不是书本的小明10 小时前
Apache vs Nginx vs Tomcat 核心区别与优化
nginx·tomcat·apache
困惑阿三1 天前
客户消息及时反馈
nginx·node.js·飞书·企业微信
liurunlin8881 天前
httpslocalhostindex 配置的nginx,一刷新就报404了
运维·nginx
BullSmall1 天前
Nginx负载均衡会话保持配置指南
运维·nginx·负载均衡
你才是臭弟弟1 天前
Nginx部署前后端
运维·nginx