目录
1. 为什么需要迁移SSL证书
许多网站所有者在注册域名时就从GoDaddy购买了SSL证书,但后来将虚拟主机迁移到了使用DirectAdmin作为控制面板的服务商。在这种情况下,您需要将已购买的SSL证书重新安装到新服务器上,而不必提前购买新证书。
需要迁移SSL证书的常见情况:
- 将虚拟主机迁移到AsiaGB或其他使用DirectAdmin的服务商
- 证书仍在有效期内,不想提前购买新证书
- GoDaddy已颁发证书,但尚未安装到服务器上
- 需要在多台服务器上使用同一张证书
SSL证书与特定服务器无关。只要您拥有生成CSR时保存的私钥,就可以将GoDaddy颁发的证书安装到任何Web服务器上。
2. 迁移前的准备工作
在开始迁移前,请准备好以下内容:
| 所需项目 | 说明 | 是否必须 |
|---|---|---|
| GoDaddy账户访问权限 | 用于下载证书文件 | ✅ 必须 |
| 私钥文件(.key) | 生成CSR时保存的私钥,需自行保管 | ✅ 必须 |
| DirectAdmin访问权限 | 管理员或已启用SSL的用户账户 | ✅ 必须 |
| FTP/SSH访问权限 | 用于高级故障排查 | ⚪ 可选 |
| OpenSSL工具 | 仅在收到.pfx格式文件时需要 | ⚪ 如有.pfx |
私钥是您在生成CSR时在自己的服务器上创建的。GoDaddy不存储您的私钥。如果私钥丢失,必须在DirectAdmin中重新生成CSR并向GoDaddy申请免费的证书重新颁发(Reissue)。
3. 从GoDaddy下载SSL证书
按照以下步骤从GoDaddy下载SSL证书文件:
登录GoDaddy账户
访问 godaddy.com 并登录,然后进入 我的产品 > SSL证书 或 安全 > SSL证书。
找到需要下载的证书
点击目标证书旁边的 管理 或 设置。如果证书尚未激活,可能需要先提交CSR。
下载证书文件
点击 下载,服务器类型选择 Apache(或 其他)。您将获得一个.zip压缩包,解压后会找到 .crt 证书文件和 bundle.crt CA文件。
用文本编辑器打开文件
用记事本或VS Code打开.crt文件,内容应以 -----BEGIN CERTIFICATE----- 开头。如果不是,则需要进行格式转换。
4. 了解GoDaddy SSL文件类型
选择Apache格式下载GoDaddy SSL后,您将获得以下文件:
| 文件名 | 作用 | DirectAdmin对应字段 |
|---|---|---|
<domain>.crt | 主域名证书 | 粘贴到"Certificate"字段 |
gd_bundle-g2-g1.crt | CA Bundle/中间证书链 | 粘贴到"CA Root Certificate"字段 |
<domain>.key | 私钥(如由GoDaddy生成CSR) | 粘贴到"Private Key"字段 |
如果您选择"其他"作为服务器类型,GoDaddy可能会提供.pem格式的文件。两者内容完全相同,都可以直接在DirectAdmin中使用,无需任何转换。
5. 转换SSL文件格式(必要时)
如果GoDaddy提供的是 .pfx 文件(PKCS#12格式,常见于之前使用Windows IIS的情况),需要在安装到DirectAdmin之前先进行转换。
使用OpenSSL将.pfx转换为.crt + .key
# 从.pfx中提取证书
openssl pkcs12 -in certificate.pfx -nokeys -clcerts -out domain.crt
# 从.pfx中提取私钥(会提示输入pfx密码)
openssl pkcs12 -in certificate.pfx -nocerts -nodes -out private.key
# 从.pfx中提取CA Bundle
openssl pkcs12 -in certificate.pfx -nokeys -cacerts -out ca_bundle.crt
验证私钥与证书是否匹配
# 两个输出值必须完全相同,否则私钥不匹配
openssl x509 -noout -modulus -in domain.crt | md5sum
openssl rsa -noout -modulus -in private.key | md5sum
安装Git Bash或使用WSL(Windows Subsystem for Linux)即可运行OpenSSL命令。也可以从openssl.org下载Windows版本的OpenSSL工具。
6. 在DirectAdmin安装SSL的详细步骤
准备好.crt证书、CA Bundle和私钥后,按照以下步骤在DirectAdmin中安装:
登录DirectAdmin控制面板
通过主机服务商提供的URL访问DirectAdmin(通常为 yourdomain.com:2222)。
进入SSL证书设置
在控制台中点击 账户管理 或 域名管理,然后选择 SSL证书。
选择"粘贴预生成的证书和密钥"
选择这个选项(标签页或单选按钮),而不是生成新证书。此模式允许您粘贴来自GoDaddy的现有证书文件。
粘贴私钥
用文本编辑器打开.key文件,复制全部内容(包括 -----BEGIN RSA PRIVATE KEY----- 页眉和页脚),粘贴到 私钥(Private Key) 字段中。
粘贴证书
打开域名.crt文件,复制全部内容,粘贴到 证书(Certificate) 字段中。注意这里只粘贴主域名证书,不是CA Bundle。
粘贴CA Bundle
打开bundle.crt或gd_bundle.crt文件,复制全部内容,粘贴到 CA根证书(CA Root Certificate) 字段中。此步骤至关重要,缺少CA Bundle会导致浏览器显示证书链不完整的警告。
保存并重启Web服务器
点击 保存。DirectAdmin会自动重启Apache/httpd。等待10-30秒后生效。
新版本DirectAdmin内置Let's Encrypt集成。若要安装来自GoDaddy的商业SSL证书,请选择"使用自定义证书"选项,而非自动Let's Encrypt选项。
7. 验证SSL安装
安装完成后,通过以下方式验证SSL是否正常工作:
浏览器检查
- 在浏览器地址栏输入
https://yourdomain.com访问网站 - 地址栏应显示🔒锁形图标
- 点击锁形图标 → "证书有效",检查颁发者(应显示GoDaddy或Starfield)和到期日期
在线检测工具
- SSL Labs: ssllabs.com/ssltest — 全面分析,评分A-F
- AsiaGB SSL检测: asiagb.com/ssl-checker.html — 快速检测
- What's My Chain Cert: whatsmychaincert.com — 专门检测证书链
使用OpenSSL命令行验证
# 检查服务器上的SSL证书
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
# 验证证书链(应返回"Verify return code: 0 (ok)")
openssl s_client -connect yourdomain.com:443 -CApath /etc/ssl/certs 2>/dev/null | grep "Verify return"
| 检测结果 | 含义 | 处理方式 |
|---|---|---|
| ✅ A级或A+级 | SSL完全正常 | 无需操作 |
| ⚠️ 证书链不完整 | 缺少CA Bundle | 在DirectAdmin中添加CA Bundle |
| ❌ 证书已过期 | SSL已到期 | 续费或购买新证书 |
| ❌ 域名不匹配 | 域名与证书CN不符 | 确认安装了正确域名的证书 |
| ❌ 自签名证书 | 仍在使用自签名证书 | SSL安装失败,请重试 |
8. 常见问题排查
安装后浏览器仍显示"您的连接不是私密连接"
- 缺少CA Bundle: 返回DirectAdmin,将CA Bundle内容粘贴到"CA根证书"字段中
- 证书尚未激活: 确认GoDaddy已发送验证邮件且SSL状态显示为"已激活"
- DNS仍指向旧服务器: 等待DNS传播,通常需要1-24小时
DirectAdmin提示"密钥与证书不匹配"
粘贴的私钥与证书不对应。使用上述模数检查命令验证它们是否匹配。如果不匹配,需要在DirectAdmin中重新生成CSR并向GoDaddy申请免费的重新颁发。
切勿将CA Bundle粘贴到"证书"字段,也不要将证书粘贴到"CA根证书"字段。每个文件必须放到对应的正确字段中,混淆会导致难以诊断的错误。
安装SSL后HTTP仍可访问
在.htaccess文件中添加强制HTTPS跳转规则:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
混合内容警告(锁形图标显示⚠️)
混合内容是指页面中仍有资源(图片、脚本或样式表)通过HTTP加载。解决方法:
- 将HTML/CSS中所有以
http://开头的资源URL改为https:// - WordPress用户可安装Really Simple SSL或Better Search Replace插件
- 添加响应头:
Content-Security-Policy: upgrade-insecure-requests
9. 下次续费SSL应该选哪里
当GoDaddy SSL接近到期时,您有两个主要选择:
| 选项 | 优点 | 缺点 |
|---|---|---|
| 在GoDaddy续费 | 同一服务商,可能无需重新迁移 | 价格较高,仍需手动安装 |
| 在AsiaGB购买 | 价格实惠,免费协助DirectAdmin安装,中文支持 | 需要新购证书 |
AsiaGB SSL证书起价 1,000泰铢/年(DV SSL),提供免费的DirectAdmin安装协助、中文客服支持和99%在线率SLA保障。
10. 常见问题解答
需要三个核心文件:(1) GoDaddy颁发的域名证书(.crt),(2) CA Bundle中间证书,以及(3) 生成CSR时保存的私钥(.key)。私钥必须由您自己保管,GoDaddy不会存储您的私钥。
不能。私钥是必要组件,无法从GoDaddy找回。如果丢失,需要在DirectAdmin中重新生成CSR,然后向GoDaddy申请免费的重新颁发(Reissue),再重新安装整套新证书。
GoDaddy以.crt格式(实际上是PEM编码)和bundle.crt格式提供证书文件,可以直接在DirectAdmin中使用,无需转换。如果收到.pfx格式文件,则需要使用OpenSSL先进行转换。
最常见的原因是缺少CA Bundle(中间证书),导致证书链不完整。返回DirectAdmin的SSL设置,将CA Bundle内容粘贴到"CA根证书"字段中,保存后重启Apache即可解决。
如果您已经在使用AsiaGB的DirectAdmin虚拟主机,建议直接在AsiaGB购买SSL证书,可以享受免费安装协助、中文客服支持,而且以后不需要再在不同服务商之间迁移证书文件。
可以,但需要先用OpenSSL转换:用 openssl pkcs12 -in cert.pfx -nokeys -clcerts -out domain.crt 提取证书,用 openssl pkcs12 -in cert.pfx -nocerts -nodes -out private.key 提取私钥,然后将两个文件安装到DirectAdmin即可。
11. 总结
只要准备好三个必要文件:域名证书(.crt)、CA Bundle中间证书和私钥(.key),将GoDaddy SSL证书迁移到DirectAdmin并不复杂。关键注意事项:
- 每个文件必须粘贴到DirectAdmin中对应的正确字段
- 不要忘记CA Bundle——缺少它会导致证书链不完整,浏览器显示警告
- 如果收到.pfx文件,需要先用OpenSSL进行格式转换
- 安装完成后用SSL检测工具验证证书级别和证书链
下次续费时,建议考虑在 AsiaGB 直接购买SSL证书,享受免费的DirectAdmin安装协助和中文客服全天支持。