文档中心
OpenSSL鑷10鍩熷悕SSL璇佷功涓€姝ユ鏁欎綘鎵撻€犲畨鍏ㄥ绔欑偣鐜
时间 : 2025-09-27 16:28:41浏览量 : 3

在网络安全领域,SSL/TLS证书就像网站的"身份证",而OpenSSL则是制作这种身份证的"办证工具"。本文将手把手教你用OpenSSL为10个域名自签名SSL证书,既节省成本又能保障多站点通信安全。
一、为什么要自签多域名证书?
想象你管理着公司内网多个系统:
- `oa.company.com`(办公系统)
- `crm.company.com`(客户管理)
- `wiki.company.com`(知识库)
...共10个域名。购买商业证书每个域名每年至少$50,10个就是$500!而自签名证书:
? 零成本
? 完全控制(有效期、加密强度等)
? 适合测试/内网环境
> 真实案例:某电商企业在开发阶段为`dev-shop.com`、`dev-api.com`等10个测试域名自签证书,仅测试期间就节省了$2000+费用。
二、准备工作清单
1. 安装OpenSSL(Linux通常已内置,Windows需[官网下载](https://www.openssl.org/))
2. 准备域名列表(示例):
```text
oa.company.com
crm.company.com
wiki.company.com
...
```
3. 创建工作目录:
```bash
mkdir ~/ssl_certs && cd ~/ssl_certs
```
三、详细操作步骤(含故障处理)
步骤1:生成CA根证书(自制"发证机构")
```bash
生成CA私钥(密码保护)
openssl genrsa -aes256 -out ca.key 4096
生成CA根证书(有效期10年)
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 \
-out ca.crt -subj "/CN=My Internal CA"
```
? 常见报错:若看到`unable to write 'random state'`,执行:
export RANDFILE=$HOME/.rnd
步骤2:创建多域名CSR配置文件
新建`san.conf`文件:
```ini
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
countryName = CN
stateOrProvinceName = Beijing
localityName = Beijing
organizationName = My Company
commonName = *.company.com
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = oa.company.com
DNS.2 = crm.company.com
DNS.3 = wiki.company.com
...
DNS.10 = monitor.company.com
> ?? 关键点:`subjectAltName`必须包含所有需要保护的域名,现代浏览器已不再信任仅靠`commonName`的证书。
步骤3:生成服务器证书
生成私钥(无密码)
openssl genrsa -out server.key 2048
生成CSR请求文件
openssl req -new -key server.key -out server.csr \
-config san.conf
CA签署证书(添加SAN扩展)
openssl x509 -req -in server.csr -CA ca.crt \
-CAkey ca.key -CAcreateserial \
-out server.crt -days 365 \
-extfile san.conf -extensions v3_req
?? 验证技巧:检查生成的证书是否包含所有域名:
openssl x509 -in server.crt -text | grep DNS:
四、部署与信任配置
Nginx配置示例
```nginx
server {
listen 443 ssl;
server_name oa.company.com;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
HSTS等安全头配置...
}
Windows客户端安装CA根证书
1. 双击`ca.crt` → "安装证书"
2. 选择"受信任的根证书颁发机构"存储位置
?? 自动化技巧:可用组策略批量部署CA证书到域内所有机器。
五、安全性增强建议
1. 密钥保护:私钥权限设为600
```bash
chmod 600 *.key
2. 定期轮换:即使自签名也建议每年更换一次密钥对
3. OCSP Stapling(提升HTTPS性能):
```nginx
ssl_stapling on;
ssl_stapling_verify on;
FAQ速查表
? Chrome仍显示不安全? → [chrome://flags/
allow-insecure-localhost](chrome://flags/#allow-insecure-localhost)启用特殊策略或正确安装CA证书。
? 如何吊销某个域名的访问权? → OpenSSL暂不支持CRL精细控制,需重新签发不含该域的证书。
通过这套方法,我们曾为某金融机构快速搭建含15个子系统的开发环境SSL体系。掌握OpenSSL这个瑞士军刀,你就能在保证安全的前提下灵活应对各种场景需求!
TAG:openssl自签10域名ssl证书,openssl证书签名详解,ssl证书自签源码,openssl rsa 签名,openssl制作ssl证书,openssl 自签名证书