准备工作与环境配置
生成自签名SSL证书前需确保系统中已安装OpenSSL工具(Windows/Linux/macOS通用)或PowerShell 5.1+(仅限Windows)。推荐创建独立目录存放证书文件,例如:
- 新建
ca
文件夹存储根证书 - 新建
certs
文件夹存储服务器证书 - 准备配置文件定义域名和IP(如
cert.ext
)
OpenSSL命令行生成证书
通过以下四步生成有效期十年的证书:
- 生成CA私钥(含密码保护):
openssl genrsa -des3 -out ca/myCA.key 2048
- 创建自签名根证书(有效期20年):
openssl req -x509 -new -nodes -key ca/myCA.key -sha256 -days 7300 -out ca/myCA.crt
- 生成服务器私钥与CSR文件:
openssl req -new -key certs/server.key -out certs/server.csr
- 签署十年有效期证书:
openssl x509 -req -days 3650 -CA ca/myCA.crt -CAkey ca/myCA.key -CAcreateserial -out certs/server.crt
PowerShell快速生成方法
Windows系统可通过以下命令生成并导出证书:
- 创建十年有效期证书:
$cert = New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(10)
- 导出含私钥的.pfx文件:
Export-PfxCertificate -Cert $cert -FilePath "C:\Certificates\localhost.pfx" -Password $pwd
证书部署与注意事项
完成证书生成后需注意:
- 将CA根证书(
myCA.crt
)安装到所有客户端的受信任根证书存储区 - Web服务器配置中需同时加载
.crt
和.key
文件 - 浏览器访问时需强制启用HSTS策略规避安全警告
- 私钥文件(
.key
或.pfx
)应限制访问权限
通过OpenSSL或PowerShell生成十年有效期的自签名证书,既能满足长期测试需求,又可避免频繁更新证书的麻烦。但需注意此类证书仅适用于内部系统或开发环境,公网服务仍需使用受信任CA签发的证书。