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

相关推荐
苹果醋32 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
石牌桥网管3 小时前
OpenSSL 生成根证书、中间证书和网站证书
网络协议·https·openssl
yanwushu3 小时前
Xserver v1.4.2发布,支持自动重载 nginx 配置
mysql·nginx·php·个人开发·composer
ajsbxi13 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
JustCouvrir1 天前
macOS|前端工程部署到Nginx服务器
服务器·前端·nginx
AlbertS1 天前
使用 Let’s Encrypt 获取免费SSL证书
nginx·免费·centos7·ssl证书·let’s encrypt
航月1 天前
FTP、ISCSI、CHRONY、DNS、NFS、DOCKER、MARIADB、NGINX、PHP、CA各服务开启方法
nginx·docker·mariadb
IT-民工211102 天前
nginx监控指标有哪些
运维·nginx
陌路物是人非2 天前
docker对nginx.conf进行修改后页面无变化或页面报错
nginx·docker