ssl新闻资讯

文档中心

SSL鑷璇佷功澶氬煙鍚嶉厤缃寚鍗楀師鐞嗐€佹楠や笌椋庨櫓瑙勯伩

时间 : 2025-09-27 16:38:05浏览量 : 2

什么是SSL自签证书?

2SSL鑷璇佷功澶氬煙鍚嶉厤缃寚鍗楀師鐞嗐€佹楠や笌椋庨櫓瑙勯伩

SSL自签证书就像你自己制作的一张"身份证",而不是由公安局(权威CA机构)颁发的。当网站使用这种证书时,浏览器会显示"不安全"警告,但它仍然能实现数据加密传输。我经常在内部测试环境见到这种情况——比如开发团队在测试新版电商网站时,临时使用自签证书来验证支付流程的加密功能。

为什么需要多域名自签证书?

想象一下你管理着公司内网多个系统:OA系统(oa.company.local)、邮件系统(mail.company.local)和CRM系统(crm.company.local)。如果每个系统都单独配置证书,管理起来会非常麻烦。多域名证书就像一把万能钥匙,可以同时打开多个门。去年我们给某客户做渗透测试时,就发现他们用了6个单独的自签证书,结果有3个因为忘记更新导致服务中断。

如何创建多域名自签证书?

基础准备

首先需要安装OpenSSL工具,这就像拿到一本空白护照和印章工具。在Linux上通常已经预装,Windows用户可以从官网下载。

关键步骤分解

1. 生成根CA(建立自己的发证机构)

```bash

openssl req -x509 -nodes -newkey rsa:2048 -keyout rootCA.key -out rootCA.crt -days 3650

```

这相当于成立自己的"小公安局",-days 3650表示10年有效期。上周有个客户设了36500天(100年),被我们审计时发现并纠正——过长有效期是重大安全隐患。

2. 创建CSR请求文件(填写申请表)

配置文件san.cnf内容示例:

```ini

[req]

distinguished_name = req_distinguished_name

req_extensions = v3_req

[req_distinguished_name]

[v3_req]

basicConstraints = CA:FALSE

keyUsage = digitalSignature, keyEncipherment

subjectAltName = @alt_names

[alt_names]

DNS.1 = example.com

DNS.2 = shop.example.com

DNS.3 = api.example.com

特别注意subjectAltName部分,这里就是添加多个域名的关键位置。我见过最夸张的案例是一个配置文件里塞了50个域名,导致Nginx启动时报内存溢出错误。

3. 生成私钥和CSR

openssl req -new -nodes -out multidomain.csr -newkey rsa:2048 \

-keyout multidomain.key -config san.cnf

4. 用CA签署证书

openssl x509 -req -in multidomain.csr -CA rootCA.crt \

-CAkey rootCA.key -CAcreateserial -out multidomain.crt \

-days 365 -extensions v3_req -extfile san.cnf

服务器配置实例

Nginx配置片段

```nginx

server {

listen 443 ssl;

server_name example.com;

ssl_certificate /path/to/multidomain.crt;

ssl_certificate_key /path/to/multidomain.key;

强制TLS1.2以上版本(重要安全设置)

ssl_protocols TLSv1.2 TLSv1.3;

}

```

去年处理过一个事故:某企业虽然配置了多域名证书,但允许TLS1.0协议导致被中间人攻击。正确的协议限制能避免70%的SSL相关漏洞。

Apache配置片段

```apache

ServerName shop.example.com

SSLEngine on

SSLCertificateFile "/path/to/multidomain.crt"

SSLCertificateKeyFile "/path/to/multidomain.key"

HSTS头增强安全性(建议生产环境添加)

Header always set Strict-Transport-Security "max-age=63072000"

客户端信任问题解决方案

当你在Chrome看到"NET::ERR_CERT_AUTHORITY_INVALID"警告时:

1. Windows导入方法:

? 双击rootCA.crt → "安装证书" → "本地计算机"

? "将所有证书放入下列存储" → "受信任的根证书颁发机构"

2. macOS导入方法:

直接双击rootCA.crt → 钥匙串访问 → 将CA证书拖到"系统"钥匙串 → 右键选择"始终信任"

有个常见陷阱:某公司员工把CA证书导入到"当前用户"而非"本地计算机",结果其他用户访问时依然报错。正确的导入位置很关键!

安全风险与最佳实践

1. 密钥长度:现在绝对不要用1024位RSA密钥了!去年Logjam漏洞就利用了弱密钥问题。2048位是底线,有条件上ECC算法更佳。

2. 有效期管理:建议设置90天有效期并建立续期流程。我们曾发现某企业5年未更换的自签证书被离职员工私钥滥用的情况。

3. CRL/OCSP:虽然自签环境通常不配吊销列表,但对重要系统应考虑实现OCSP Stapling增强安全性。

4. 日志监控:记录所有SSL握手失败日志。有次我们发现某IP反复尝试TLS1.0连接,最终溯源到内网僵尸主机。

5. 替代方案考虑

? Let's Encrypt免费证书(适合有公网DNS控制的场景)

? Windows AD CS(企业域环境理想选择)

最近帮一家医院迁移了他们用了8年的自签体系到AD CS方案后,运维效率提升了60%,安全性审计也更容易通过。

技术要点

制作多域名自签证书的核心在于:

1) SAN扩展字段的正确配置

2) CA签发时的扩展参数传递

3) 统一的客户端信任管理

记住一个原则:能用正规CA就别用自签名!但对于确实需要的内部环境,按本文规范操作可以最大限度降低风险。最后提醒:任何安全措施都要配套相应的管理制度——技术手段只是解决方案的一部分。

TAG:ssl自签证书多域名,ssl证书 子域名,ssl 自签名,ssl证书自签源码,自签ssl证书变为可信任