一、准备工作与环境要求
生成自签名SSL证书需要安装OpenSSL工具并配置基础环境:
- 从官网下载Windows版OpenSSL,建议安装到不含空格和中文的路径(例如
C:\OpenSSL32
) - 将OpenSSL的bin目录(如
C:\OpenSSL32\bin
)添加到系统环境变量PATH中 - 创建证书存储目录结构,建议建立
ca
和certs
两个文件夹分别存放CA证书和服务器证书
二、生成CA根证书
通过以下命令生成有效期20年的CA根证书:
- 生成受密码保护的CA私钥:
openssl genrsa -des3 -out ca/myCA.key 2048
- 创建自签名的CA证书:
openssl req -x509 -new -nodes -key ca/myCA.key -sha256 -days 7300 -out ca/myCA.crt
注意Common Name应设置为可识别名称(如”My Root CA”)
三、创建服务器SSL证书
生成服务器端证书需完成以下步骤:
- 生成服务器私钥:
openssl genrsa -out certs/server.key 2048
- 创建证书签名请求(CSR):
openssl req -new -key certs/server.key -out certs/server.csr
需填写准确的域名或IP地址作为Common Name - 使用CA证书签发服务器证书:
openssl x509 -req -days 365 -in certs/server.csr -signkey certs/server.key -out certs/server.crt
四、安装证书到Web服务器
以Nginx服务器为例的配置方法:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
}
需将生成的server.crt
和server.key
文件路径正确配置到服务器,重启服务后生效
自签名证书适用于内部测试和开发环境,但存在浏览器警告提示的局限性。生产环境建议使用受信任CA机构颁发的证书。通过规范化的OpenSSL命令流程,可快速构建安全的HTTPS测试环境