若你有多台服务器连接主域名及其所有子域名(*.domain.com),选择通配符 SSL 证书来保护网站可能带来质的改变。许多组织偏好使用通配符 SSL,因为它免去了管理多张 SSL 证书的麻烦,节省时间并降低逐一购买与续期证书的成本。
通配符 SSL 证书是一种灵活的解决方案,会自动保护你在未来创建的任何新子域名,确保全域名一致的安全。本文将用几个简单步骤讲解在多台服务器上安装通配符证书的过程。
在多台服务器上安装通配符 SSL 证书的步骤
第 1 步:购买通配符 SSL 证书
首先,你需要从受信任的证书颁发机构(CA)如 Sectigo、Comodo、DigiCert、RapidSSL 或 GlobalSign 购买通配符 SSL 证书。选择 CA 时,请确保其支持通配符 SSL 并能为你的服务器提供必要文件。
购买后,CA 通常会提供生成证书签名请求(CSR)的指引。若没有相关说明,可参考以下步骤自行创建。
第 2 步:为通配符证书生成 CSR
购买通配符 SSL 后,你需要创建证书签名请求(CSR)。此过程至关重要,因为 CSR 包含确定域名、组织、所在地等全部信息。生成步骤:
- 使用 SSH 连接到托管域名的 Web 服务器。
- 使用 OpenSSL 生成 CSR。
openssl req -new -newkey rsa:2048 -nodes -keyout domain-name.key -out domain-name.csr
执行命令后,系统会提示输入以下信息:
- 国家名称(2 字母代码):输入国家缩写。
- 省/州名称:输入所在省名。
- 所在地名称:输入城市名。
- 组织名称:你的公司名。
- 组织单位名称:你的部门(如 IT 或安全)。
- 通用名称(Common Name):你的域名,需加通配符前缀,如 *.example.com 以适用于所有子域名。
- 电子邮件地址:输入你的邮箱。
生成 CSR 后,将其提交给 CA 以启动证书签发。务必复制终端窗口中的完整内容,包括“-----BEGIN CERTIFICATE REQUEST-----”与“-----END CERTIFICATE REQUEST-----”部分。
第 3 步:完成证书验证
提交 CSR 后,CA 会要求你验证域名所有权,验证方式包括:
- 邮件验证:CA 向域名相关邮箱(如 admin@、administrator@、webmaster@、hostmaster@、postmaster@domain.com)发送 DCV(域名控制验证)邮件,用于确认域名所有权。
- DNS 记录验证:CA 提供一条 DNS 记录(CNAME 或 TXT,取决于 CA),需添加到域名的 DNS 设置中,供 CA 验证所有权。
第 4 步:将证书文件分发到各服务器
通配符 SSL 证书签发后,你会从 CA 收到若干文件:
- 证书文件(domain-name.crt):主证书文件。
- 中间证书(CA-bundle.crt):建立服务器证书与 CA 之间信任链的文档。
- 私钥(domain-name.key):CSR 过程中生成的私钥。
若要在多台服务器上安装证书,需从每台服务器生成 CSR 并相应安装证书文件。例如有服务器 A 与 B,需先在 A 上生成 CSR 并获取证书文件、安装到 A;同样在 B 上生成 CSR、获取证书并安装到 B。将证书文件从本地系统传输到各 Web 服务器时,请使用 scp(安全复制协议)或 sftp(安全文件传输协议)等安全传输方式。
第 5 步:在每台服务器上安装通配符 SSL 证书
安装过程因 Web 服务器软件(如 Apache、Nginx、IIS)略有不同,以下是 Apache 与 Nginx 的通用指南:
Apache 服务器
- 将证书文件 domain-name.crt、domain-name.key、CA-bundle.crt 移动到 /etc/pki/tls 等目录。
- 编辑 Apache 配置文件(如 conf 或 default-ssl.conf),加入以下行:
SSLCertificateFile /etc/ssl/domain-name.crt
SSLCertificateKeyFile /etc/ssl/domain-name.key
SSLCertificateChainFile /etc/ssl/CA-bundle.crt
- 重启 Apache:
sudo systemctl restart apache2
Nginx 服务器
- 将 domain-name.crt 与 CA-bundle.crt 合并为单一文件,以确保 Nginx 提供完整证书链(含服务器与中间证书):
cat domain-name.crt CA-bundle.crt > ssl-bundle.crt
- 将 ssl-bundle.crt 与 domain-name.key 移动到 /etc/ssl 目录。
- 编辑 Nginx 配置文件(conf 或 server block),加入以下行:
server {
listen 443 ssl;
server_name domain-name.com *.domain-name.com;
ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/domain-name.key;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1.2 TLSv1.3;
}
- 重启 Nginx:
sudo systemctl restart nginx
你可为托管子域名的所有服务器复制上述安装流程。请使用 SSL 安装检查器等验证工具,确认每台服务器上的证书均已正确安装、证书链完整且无错误。
结语
通过在多台服务器上安装通配符 SSL 证书,组织能够高效管理与保护多个子域名。遵循本文步骤——购买证书、生成 CSR、完成域名验证、安全分发证书文件、在每台服务器安装——可确保服务器与子域名受到强加密保护。通配符 SSL 证书不仅简化管理,更为你的 Web 基础设施提供一致、可靠的安全。