ssl新闻资讯

文档中心

OpenSSL鑷10鍩熷悕SSL璇佷功涓€姝ユ鏁欎綘鎵撻€犲畨鍏ㄥ绔欑偣鐜

时间 : 2025-09-27 16:28:41浏览量 : 3

2OpenSSL鑷10鍩熷悕SSL璇佷功涓€姝ユ鏁欎綘鎵撻€犲畨鍏ㄥ绔欑偣鐜

在网络安全领域,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 自签名证书