通过根证书为域名生成自签名SSL证书指南
一、环境与工具准备
需安装OpenSSL工具并创建以下目录结构:
mkdir -p ssl_cert/{ca,domain}
cd ssl_cert
根证书与域名证书应分别存储在ca
和domain
目录中,避免文件混淆。
二、生成根证书
- 生成根证书私钥:
openssl genrsa -des3 -out ca/rootCA.key 2048
- 创建自签名根证书(有效期20年):
openssl req -x509 -new -nodes -key ca/rootCA.key -sha256 -days 7300 -out ca/rootCA.crt
需填写Common Name字段(如”My Root CA”)。
三、创建域名证书
生成域名证书需完成以下步骤:
- 生成域名私钥:
openssl genrsa -out domain/server.key 2048
- 创建CSR文件:
openssl req -new -key domain/server.key -out domain/server.csr
需确保Common Name与目标域名完全一致 - 使用根证书签名:
openssl x509 -req -in domain/server.csr -CA ca/rootCA.crt -CAkey ca/rootCA.key -CAcreateserial -out domain/server.crt -days 3650 -extfile domain/ext.cnf
需在ext.cnf
中定义subjectAltName=DNS:example.com
以支持现代浏览器
四、部署与验证
将server.key
和server.crt
配置到Web服务器(如Nginx),并将rootCA.crt
导入操作系统受信任根证书颁发机构。访问域名时需确认:
项目 | 预期结果 |
---|---|
浏览器地址栏 | 显示HTTPS锁标识 |
证书详情 | 显示完整证书链 |
若出现警告,需检查subjectAltName
配置或证书链完整性。
通过根证书签发域名证书可实现内网HTTPS服务的安全通信,但需注意自签名证书存在浏览器兼容性风险,建议生产环境使用权威CA证书。