无论是因服务器位置变更、更换主机提供商、负载均衡、横向扩展还是其他原因,你可能都需要将 SSL 证书从一台 Web 服务器复制或迁移到另一台 Web 服务器。如果并不了解 SSL 证书管理与迁移涉及的技术步骤,这个过程会颇具挑战。如果你正面临此类问题,或想知道如何在不同服务器之间移动或复制 SSL 证书,本文将为提供相关说明。

将 SSL 证书从一台 Web 服务器迁移到另一台的步骤

从总体来看,无论使用哪种 Web 服务器,都可以通过以下三个步骤,将单域名 SSL、多域名 SSL 或通配符 SSL 证书从一台服务器迁移到另一台 Web 服务器:

· 从当前 Web 服务器导出 SSL 及链式证书(含关联的私钥)。
· 确认已将 SSL 证书转换为所需格式(如 .pfx、.crt、.key),以保证与目标 Web 服务器的兼容性。
· 将 SSL 证书从可信的 SSL 证书提供商导入到新 Web 服务器上对应的域名。

步骤 1:在 cPanel 中将 SSL 证书从一台服务器迁移到另一台

1. 登录 cPanel 账户以使用正确的工具,可通过 https://domain-name.com:2083 进入登录页。
2. 向下滚动并进入 Security(安全)区域。
3. 在 Security 区域中选择 SSL/TLS 选项。
4. 复制私钥:点击列表中的第一个 Private Keys (KEY) 选项,选择要移动的私钥的 Edit,从 Encoded Private Key 字段复制私钥并妥善保存。
注意:复制私钥时需包含「-----BEGIN RSA PRIVATE KEY-----」与「-----END RSA PRIVATE KEY-----」。
5. 粘贴私钥与证书:在新 Web 服务器上登录 cPanel 进入 SSL/TLS 页面,将复制的私钥粘贴到 Upload a New Private Key 字段并保存;再在同一 SSL/TLS 页面上传你的 SSL 证书并保存。
6. 安装 SSL 证书:进入 SSL/TLS 页面的 Install and Manage SSL for your site (HTTPS) 区域,选择 Manage SSL sites,浏览并选择要安装的 SSL 证书,选择目标域名,所有字段应自动填充,否则手动粘贴证书与私钥后点击 Install Certificate。

步骤 2:将 SSL 证书从一台 Windows 服务器移动到另一台 Windows 服务器

1. 点击任务栏搜索,输入 IIS 并回车,打开 IIS(Internet Information Services)管理器。
2. 找到并选择已安装 SSL 证书的服务器,点击 Server Certificates。
3. 右键点击要导出的 SSL 证书,选择 Export(导出)。
4. 在 Export Certificate 框中:输入导出路径、输入密码并确认,点击 OK。
5. 在另一台 Windows 服务器上,打开 IIS 管理器,在 Actions 选项卡点击 Import,在 Import Certificate 对话框中输入导出的 .pfx 证书路径与导出时使用的密码,点击 OK。完成后,将导入的 SSL 证书绑定到其签发的网站即可。

步骤 3:将 SSL 证书从 Windows 服务器移动到 Apache 服务器

1. 按 Windows + R 打开运行对话框,输入 MMC 并回车,选择 Yes,进入控制台后添加 Computer Account 的 Certificates 管理单元。
2. 展开 Personal > Certificates,右键点击要导出的 SSL 证书,选择 All Tasks > Export,在向导中导出私钥并包含证书路径中的所有证书,设置密码后将 .pfx 文件保存到本地。
3. 使用以下 OpenSSL 命令将 .pfx 文件转换为独立的证书与密钥文件:

openssl pkcs12 -in ssl-cert-example.pfx -out ssl-cert-example.txt -nodes

用记事本打开生成的文本文件,将主证书与中间证书以及私钥(含 -----BEGIN PRIVATE KEY----- 与 -----END PRIVATE KEY----- 标签)分别保存为 .crt 与 .key 文件。
4. 将证书与密钥文件通过 SCP/SFTP 上传到 Apache 服务器的 /etc/ssl 目录,并确保 Apache 有读取权限。
5. 在 Apache 配置文件中添加以下指令并重启服务:

SSLCertFile /path/to/certificate.crt
SSLCertKey /path/to/private.key
systemctl restart apache2

注意:请将路径替换为 Apache 服务器上的实际路径。

步骤 4:将 SSL 证书从 Apache 服务器移动到 Windows 服务器

1. 在 Apache 服务器上运行以下命令导出 SSL 证书及私钥并转换为 .PFX:

sudo openssl pkcs12 -Export -out certificate.pfx -inkey private.key -in certificate.crt

2. 通过 SCP 或 SFTP 将 .pfx 文件复制到 Windows 服务器,使用 MMC 的 Certificates 管理单元安装。
3. 打开 IIS 管理器,选择要保护的网站,在右侧 Actions 中点击 Bindings > Add,类型选择 HTTPS,从 SSL 证书下拉列表选择导入的证书并确认。

步骤 5:将 SSL 证书从 Tomcat/Java 服务器移动到 OpenSSL 服务器

1. 使用以下命令从 Tomcat/Java 服务器导出 SSL 证书并转换为 .p12 文件:

keytool -importkeystore -srckeystore keystore.jks -srcstoretype JKS -destkeystore certificate.p12 -deststoretype PKCS12

2. 将 .p12 文件复制到 OpenSSL 服务器,使用以下命令转换为文本文件:

openssl pkcs12 -in certificate.p12 -out certificate.txt -nodes

3. 用记事本打开 certificate.txt,将证书内容(-----BEGIN CERTIFICATE----- 至 -----END CERTIFICATE-----)保存为 .crt,将私钥(-----BEGIN PRIVATE KEY----- 至 -----END PRIVATE KEY-----)保存为 .key,放到合适位置并在 OpenSSL 配置文件中指定路径,最后为网站启用 SSL。

小结

希望本文已解答你关于如何在不同服务器之间移动或复制 SSL 证书的疑问。将 SSL 证书迁移到新 Web 服务器后,还需注意以下事项再让域名被正确 SSL 保护:

· 在主机上安装 SSL 后,于 WordPress 等 CMS 中启用 HTTPS。
· 确保网站不存在混合内容(mixed content)等警告,以免阻止用户访问。
· 维护 HTTPS 迁移后的 SEO 排名,错误的 HTTPS 配置可能与 HTTP 一样被视为不安全。