Windows 10系统下生成SSL证书的详细操作指南
海外云服务器 40个地区可选 亚太云服务器 香港 日本 韩国
云虚拟主机 个人和企业网站的理想选择 俄罗斯电商外贸虚拟主机 赠送SSL证书
美国云虚拟主机 助力出海企业低成本上云 WAF网站防火墙 为您的业务网站保驾护航
在现代网络通信中,SSL(Secure Sockets Layer)证书作为保障数据传输安全的核心技术之一,被广泛应用于网站加密、API 接口保护、企业内部系统认证等场景,尽管大多数生产环境依赖由权威机构签发的受信任证书,但在开发测试或局域网应用中,自签名 SSL 证书则是一种经济高效且灵活的选择。
本文将详细介绍如何在 Windows 10 操作系统环境下生成自签名 SSL 证书,涵盖使用 PowerShell 内建命令和 OpenSSL 工具两种主流方法,帮助开发者和系统管理员快速搭建安全通信环境,提升本地服务的安全性与可用性。
什么是 SSL 证书?
SSL 证书是一种数字凭证,用于验证服务器身份并建立客户端与服务器之间的加密通道,当用户通过浏览器访问 HTTPS 网站时,SSL 证书确保传输过程中的敏感信息(如登录凭据、支付数据)不会被窃听或篡改。
一个标准的 SSL 证书通常包含以下关键信息:
- 公钥(Public Key)
- 证书持有者信息(如域名、组织名称)
- 颁发机构(CA)
- 有效期(起止时间)
- 数字签名算法(如 SHA-256)
对于面向公众的网站,必须使用由受信任的 CA(Certificate Authority) 签发的证书,否则浏览器会显示“连接不安全”警告,在本地开发、测试环境或封闭内网中,我们可以通过自签名方式生成临时证书,既节省成本,又满足功能验证需求。
⚠️ 注意:自签名证书未经过第三方验证,因此默认不被主流浏览器信任,仅适用于非生产用途。
准备工具:OpenSSL 与 PowerShell
在 Windows 10 上生成自签名证书,主要有两种常用方式:
- PowerShell:利用其内置的
New-SelfSignedCertificate
命令,无需额外安装软件。 - OpenSSL:功能强大的开源加密库,支持更复杂的配置选项。
安装与配置建议:
方法 | 是否需要安装 | 特点 |
---|---|---|
PowerShell | 否(系统自带) | 快速简单,适合初学者 |
OpenSSL | 是 | 更灵活,兼容性强 |
安装 OpenSSL 的推荐方式:
- 下载官方编译版本(如 Shining Light Productions 提供的 Win64 OpenSSL 安装包);
- 或启用 Windows Subsystem for Linux (WSL),在 Ubuntu 等发行版中直接使用原生 OpenSSL;
- 也可通过 Chocolatey 包管理器安装:
choco install openSSL
我们将分别介绍这两种方法的具体操作步骤。
使用 PowerShell 生成自签名 SSL 证书
PowerShell 是 Windows 自带的强大脚本工具,其 New-SelfSignedCertificate
cmdlet 可以快速创建符合 X.509 标准的自签名证书,非常适合本地开发、调试 HTTPS 应用程序。
步骤详解:
-
以管理员身份运行 PowerShell
右键点击“开始菜单” → “Windows PowerShell (管理员)”
或搜索“PowerShell”,右键选择“以管理员身份运行”。 -
执行以下命令生成证书:
$cert = New-SelfSignedCertificate ` -Subject "CN=local.test.com" ` -DnsName "local.test.com", "www.local.test.com" ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -NotBefore (Get-Date) ` -NotAfter (Get-Date).AddYears(2) ` -CertStoreLocation "Cert:\LocalMachine\My" ` -KeySpec KeyExchange ` -KeyExportPolicy Exportable ` -HashAlgorithm SHA256
参数说明:
参数 | 作用 |
---|---|
-Subject |
设置证书主体名称,CN 表示通用名(通常是域名) |
-DnsName |
添加多个 DNS 名称(SAN 扩展),支持多域名绑定 |
-KeyLength 2048 |
使用 2048 位 RSA 密钥,符合当前安全基线 |
-NotBefore / -NotAfter |
设定证书有效期限(此处为两年) |
-CertStoreLocation |
将证书存储到本地计算机的“个人”证书区 |
-Exportable |
允许导出私钥,便于后续部署 |
-HashAlgorithm SHA256 |
使用 SHA-256 哈希算法,增强安全性 |
✅ 成功执行后,系统将返回证书对象及指纹(Thumbprint),可用于后续引用或查找。
导出 PFX 格式证书(含私钥)
若需将证书用于 IIS、Apache、Nginx 或 .NET 应用程序,通常需要导出为 .pfx
文件(PKCS#12 格式),该格式包含公钥与私钥。
Export-PfxCertificate ` -Cert $cert ` -FilePath "C:\ssl\local_test_cert.pfx" ` -Password (ConvertTo-SecureString -String "YourPassword123!" -Force -AsPlainText)
🔐 建议设置强密码保护私钥,防止未经授权访问。
请确保目标路径(如 C:\ssl
)已存在,否则会报错。
将证书添加至“受信任的根证书颁发机构”(可选)
为了让浏览器不再提示“此连接不是私人的”或“您的连接不是安全的”,可将自签名证书手动加入系统的信任链。
- 导出证书(不含私钥)为
.cer
文件:
Export-Certificate -Cert $cert -FilePath "C:\ssl\local_test_cert.cer"
- 打开证书管理器:
- 按下
Win + R
,输入certlm.msc
,回车。 - 导航至:受信任的根证书颁发机构 > 证书
- 右键 → “所有任务” → “导入” → 选择
.cer
文件完成导入。
- 按下
✅ 完成后,访问 https://local.test.com
时浏览器将不再显示安全警告(前提是域名解析正确)。
使用 OpenSSL 生成 SSL 证书
如果你偏好跨平台工具或已有 OpenSSL 使用经验,也可以在 Windows 上使用它来生成自签名证书。
步骤如下:
-
打开命令行工具(CMD、PowerShell 或 Git Bash)
-
生成私钥文件(private.key)
openssl genrsa -out private.key 2048
此命令生成一个 2048 位的 RSA 私钥,保存为
private.key
。
- 创建证书签名请求(CSR)
openssl req -new -key private.key -out request.csr \ -subj "/C=CN/ST=Beijing/L=Beijing/O=TestOrg/CN=local.test.com"
参数说明:
/C
:国家代码(China → CN)/ST
:省份/L
:城市/O
:组织名称/CN
:通用名(即主域名)
你可以根据实际需求修改这些字段。
- 自签名生成最终证书
openssl x509 -req -in request.csr -signkey private.key -out certificate.crt -days 730 -sha256
该命令使用私钥对 CSR 进行自签名,生成有效期为 730 天(约两年)、采用 SHA-256 算法的证书文件
certificate.crt
。
此时你将获得两个核心文件:
certificate.crt
:公钥证书private.key
:私钥文件
这两个文件可直接用于 Nginx、Node.js、Tomcat 等支持 PEM 格式的服务器。
(可选)合并为 PFX 格式
若需要与 Windows 平台服务集成,可将证书与私钥合并为 .pfx
文件:
openssl pkcs12 -export -in certificate.crt -inkey private.key -out local_test_cert.pfx -name "localhost"
系统会提示你设置导出密码。
实际应用场景与注意事项
✅ 典型适用场景:
场景 | 说明 |
---|---|
前端开发调试 | React、Vue、Angular 项目启用 HTTPS 模式,避免混合内容警告 |