新用户新用户即享 DNS 与 CDN 免费套餐。立即注册

SSL 证书

为共享主机上传全局 SSL 证书,启用 HTTPS 并处理格式转换与续期。

5 分钟阅读 更新于 2026年10月6日

本文介绍如何为共享主机部署 SSL 证书,使网站可以通过 HTTPS 访问。

工作方式

共享主机使用 全局 SSL 证书:每个主机部署一张证书,上传后应用到该主机绑定的所有域名。因此,证书必须覆盖您希望启用 HTTPS 的全部域名,可以是:

  • 在主题备用名称(SAN)中列出所有域名的多域名证书,例如同时包含 example.com 和 www.example.com;
  • 或通配符证书,例如 *.example.com(注意通配符证书不包含根域名 example.com 本身,需要在 SAN 中另行包含)。

撰写本文时,所有共享主机套餐均支持部署 SSL 证书。

准备证书文件

您需要两段 PEM 格式的内容:

内容格式要求
SSL证书 (Certificate)以 -----BEGIN CERTIFICATE----- 开头、-----END CERTIFICATE----- 结尾
私钥 (Private Key)以 -----BEGIN PRIVATE KEY----- 或 -----BEGIN RSA PRIVATE KEY----- 开头,且不能设置密码
Tip

证书颁发机构通常会同时提供站点证书和中间证书。请把站点证书放在最前,后面依次粘贴中间证书,组成完整证书链,避免部分浏览器或客户端提示证书不受信任。

常见格式转换

如果您的私钥是 -----BEGIN EC PRIVATE KEY-----(ECC 证书常见)或带有密码,表单会拒绝。可以先用 OpenSSL 转换为不加密的 PKCS#8 格式:

bash
openssl pkcs8 -topk8 -nocrypt -in original.key -out private.key

如果证书是 .pfx / .p12 格式,可以这样拆分:

bash
openssl pkcs12 -in cert.pfx -clcerts -nokeys -out cert.pem
openssl pkcs12 -in cert.pfx -cacerts -nokeys -out chain.pem
openssl pkcs12 -in cert.pfx -nocerts -nodes -out original.key
openssl pkcs8 -topk8 -nocrypt -in original.key -out private.key
cat cert.pem chain.pem > fullchain.pem

上传前自检

服务器会校验证书与私钥是否匹配。您可以先在本地确认:

bash
# 查看证书包含的域名和有效期
openssl x509 -in fullchain.pem -noout -subject -enddate -ext subjectAltName

# 两条命令输出一致,说明证书与私钥匹配
openssl x509 -in fullchain.pem -noout -pubkey | openssl sha256
openssl pkey -in private.key -pubout | openssl sha256

部署证书

  1. 在 主机 → 共享主机 列表中,点击主机的 管理。
  2. 切换到 SSL证书 标签,点击 上传SSL证书。
  3. 在 SSL证书 (Certificate) 中粘贴完整证书链,在 私钥 (Private Key) 中粘贴私钥。
  4. 点击 上传。看到“SSL证书上传成功”即表示部署完成。

如果提示错误,常见原因如下:

提示原因与处理
请输入有效的PEM格式证书 / 私钥粘贴内容缺少 BEGIN/END 标记,或私钥类型不受支持,参考上文转换
SSL证书内容无效 / SSL私钥内容无效内容被截断或混入了多余字符,请重新复制完整内容
SSL证书与私钥不匹配私钥不是这张证书对应的私钥
当前套餐不支持部署SSL所在套餐不包含 SSL 功能

验证 HTTPS

部署完成后,在浏览器访问 https://您的域名,确认地址栏显示安全连接。也可以用命令行检查服务器返回的证书:

bash
openssl s_client -connect www.example.com:443 -servername www.example.com </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -enddate
Note

撰写本文时,部署成功后 SSL证书 标签可能仍显示“未部署SSL证书”。请以上传时的成功提示和实际 HTTPS 访问结果为准。

跳转到 HTTPS

证书部署后,网站会同时接受 HTTP 和 HTTPS 访问。如果希望访客始终使用 HTTPS,建议在网站程序中实现跳转。例如,在 PHP 网站的入口文件开头加入:

php
<?php
$isHttps = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
    || (isset($_SERVER['SERVER_PORT']) && (int)$_SERVER['SERVER_PORT'] === 443);
if (!$isHttps) {
    header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], true, 301);
    exit;
}

添加跳转前请先确认 HTTPS 访问正常。WordPress 等程序还需要在后台把站点地址改为 https:// 开头。

续期

共享主机上的证书不会自动续期。证书到期前,请从证书颁发机构获取新证书,然后在 SSL证书 标签中再次上传,新证书会替换旧证书。建议在到期前至少两周完成更换。

通过 API 部署

与控制台相同的接口如下,{name} 为主机名(即数据库用户名),需要携带登录令牌:

bash
jq -n --rawfile cert fullchain.pem --rawfile key private.key \
  '{certificate: $cert, certificate_key: $key}' \
| curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    https://api.yeap.cloud/api/user/host_shared/vhosts/name/{name}/ssl-full -d @-

使用 jq 构造请求体可以正确处理 PEM 中的换行。

本页内容是否有帮助?