1. 生成CA根证书
生成自签名根证书是构建可信证书链的基础。首先使用OpenSSL生成CA私钥文件,再通过自签名生成根证书,需确保机构名称与后续签发证书一致。关键命令如下:
- 生成CA私钥:
openssl genrsa -out ca.key 2048
- 创建自签名根证书:
openssl req -x509 -new -key ca.key -out ca.crt -days 3650
执行时需填写组织信息,其中/O
字段必须与服务器证书签发请求中的机构名称匹配。
2. 生成服务器私钥
服务器私钥用于加密通信数据,推荐使用RSA 2048位加密算法生成。命令示例如下:
openssl genrsa -out server.key 2048
为提高安全性,可通过-aes256
参数加密私钥,但需在后续操作中频繁输入密码。
3. 创建证书签名请求
证书签名请求(CSR)包含服务器公钥和组织信息,需注意以下要点:
- 通用名(Common Name)必须填写完整域名或IP地址
- 建议包含备用名称(SAN)扩展字段
- 生成命令:
openssl req -new -key server.key -out server.csr
填写信息时应确保国家代码、省份、城市等字段准确,避免浏览器证书验证失败。
4. 签发服务器证书
使用CA根证书对CSR进行签名,生成可信服务器证书。关键参数包括有效期和扩展属性:
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 825 -sha256
自签名证书可直接使用命令openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
生成,但会触发浏览器安全警告。
5. 部署与配置
在Web服务器中需将证书链文件与私钥配对使用。以Nginx为例:
server {
listen 443 ssl;
ssl_certificate /path/server.crt;
ssl_certificate_key /path/server.key;
}
部署后需强制HTTPS跳转并定期更新证书,生产环境建议使用Let’s Encrypt等权威CA。
生成服务器证书需遵循密钥生成、CSR创建、证书签发的标准化流程。自签名方案适用于测试环境,生产环境应选择可信CA机构颁发的证书以确保兼容性和安全性。