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证书

相关推荐
jialan752 小时前
nginx
运维·nginx
天天摸鱼的java工程师21 小时前
Nginx 配置实战:从摸鱼到部署,手把手教你搞定生产级配置
java·后端·nginx
冰_河1 天前
《Nginx核心技术》第10章:Nginx配置WebSocket
后端·nginx·程序员
siqiangming2 天前
SpringBoot+vue+SSE+Nginx实现消息实时推送
前端·vue.js·spring boot·nginx
流烟默2 天前
用 Spring Boot 静态资源映射 vs 用 Nginx 提供静态文件服务总结
spring boot·后端·nginx
小妖6662 天前
nginx 编译添加 ngx_http_proxy_connect_module 模块
运维·nginx·http
Clownseven2 天前
Nginx Lua模块(OpenResty)实战:动态化、智能化你的Nginx,实现复杂Web逻辑 (2025)
nginx·lua·openresty
云道轩3 天前
deepseek轻松解决 Nginx 网络透传问题实现内部IBM MQ和外部IBM MQ的通信
nginx·ibm mq
houliabc3 天前
【2025年软考中级】第二章2.2 程序设计语言的基本成分
笔记·学习·证书·软考
dessler3 天前
Web服务器-一代经典LAMP
linux·运维·nginx