在本指南中,您将学习如何在WHM(Web主机管理器)上安装SSL证书,WHM是位于各个cPanel账户之上的服务器级控制面板。无论您以root管理员身份登录,还是使用经销商权限登录,操作步骤都是相同的。最后一节将介绍AutoSSL和服务器主机名证书。
WHM是服务器管理面板,cPanel是单个账户面板。您在WHM中通过在域上安装SSL证书安装的证书,覆盖的是服务器上托管的一个域名或子域名。如果您只能访问单个cPanel账户,请改用cPanel安装指南。
我们还录制了一段视频,为您完整演示整个流程。您可以观看视频、阅读说明,或者两者都看。您可以在下方观看视频。
在WHM中生成CSR代码
如果您正在向证书颁发机构购买证书,首先需要一个CSR(证书签名请求)。CSR是一段纯文本内容,其中包含有关您的域名和组织的详细信息。CA使用它来签发证书。生成CSR的同时也会创建与之匹配的私钥,安装过程中会用到它。您有两种选择:
- 使用我们的CSR生成器自动创建CSR和密钥。
- 按照我们的分步教程学习如何在WHM中生成CSR。
在下单时将CSR提交给证书颁发机构。CA完成验证并将证书文件发送给您后,请继续进行下面的安装步骤。(如果您更希望使用免费的自动续期证书并完全跳过CSR,请直接跳转到AutoSSL部分。)
在WHM上安装SSL证书
验证完成后,证书颁发机构会通过电子邮件向您发送一个ZIP压缩包。请解压它。您应该会得到以下文件:
- 您的域名证书,通常是一个.crt文件;
- 中间证书,通常是一个.ca-bundle文件(CA捆绑包);
- 您在生成CSR时创建的私钥(请务必对此文件保密)。
用纯文本编辑器打开每个文件(Windows上使用记事本,macOS上使用文本编辑以纯文本模式打开),以便复制完整内容,包括BEGIN和END这两行。
第1步:打开安装界面
登录您的WHM控制台。在左上方的搜索框中输入SSL,然后在SSL/TLS部分下点击在域上安装SSL证书。
第2步:输入域名
在Domain字段中,输入您要保护的确切域名或子域名(例如www.yourdomain.com)。除非您要保护的域名未绑定到任何cPanel账户,否则请将IP Address (non-user domains only)字段留空。
第3步:粘贴证书
在Certificate框中,粘贴您的域名证书文件(CA通过电子邮件发给您的那个文件)的完整内容。它以下面这几行开头和结尾:
-----BEGIN CERTIFICATE-----
... certificate text ...
-----END CERTIFICATE-----
第4步:添加私钥
在Private Key框中,粘贴您与CSR一起创建的密钥。如果您在同一台WHM服务器中生成了CSR,WHM可以为您自动填充密钥:点击Autofill by Domain即可。如果需要手动粘贴,打开密钥文件,复制BEGIN和END这两行之间的所有内容。根据密钥生成方式的不同,包裹行看起来会是以下两种形式之一:
-----BEGIN PRIVATE KEY-----
... key text ...
-----END PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
... key text ...
-----END RSA PRIVATE KEY-----
每个包裹行使用五个连字符,中间没有空格。请对私钥严格保密:它是您证书的秘密对应部分,只有您自己才应该持有它。
第5步:添加CA捆绑包
在Certificate Authority Bundle (optional)框中,粘贴您的.ca-bundle文件内容。这里包含了让浏览器能够将您的证书追溯到受信任根证书的中间证书。如果捆绑包中包含多个证书区块,请保持CA提供的原始顺序。WHM通常可以自动获取正确的捆绑包,但自行粘贴可以避免任何证书链问题。
第6步:安装
所有字段填写完毕后,点击Install。WHM会验证证书、密钥和捆绑包,然后将证书应用到该域名的Web服务器以及邮件和FTP服务上。完成后会出现确认信息。如果出现错误提示,通常意味着证书和密钥不匹配,或者CA捆绑包不完整:请重新检查您粘贴的内容并再次尝试。
测试您的SSL安装
安装完成后,请确认证书已生效并且证书链完整。在浏览器中使用https://打开您的网站,查看是否显示锁形图标,然后使用我们的SSL检测工具进行更深入的扫描,即可获得即时状态报告。如果您可以通过shell访问服务器,也可以直接读取服务器所提供的证书:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates
此命令会输出颁发机构、证书签发对象的域名以及有效期。如果域名不匹配,或者缺少中间证书,则说明有某个步骤值得重新检查。
AutoSSL与服务器主机名证书
WHM还有两项SSL功能,上面的手动安装步骤没有涉及。这两项功能都值得了解。
AutoSSL(免费、自动续期的证书)
AutoSSL会为您服务器上的账户签发并续期免费的域名验证证书。打开SSL/TLS > Manage AutoSSL,在Providers标签页中选择一个提供商(由Sectigo提供支持的cPanel提供商,或Let’s Encrypt),然后启用它。之后AutoSSL会自动覆盖各个域名,并在证书到期前完成续期,因此如果您不需要带有组织验证或扩展验证的付费证书,这是最简单的选择。对于某个域名,如果您通过在域上安装SSL证书手动安装了证书,该手动安装的证书优先于AutoSSL。
服务器主机名与服务证书
保护WHM本身,以及Exim(邮件)、Dovecot、FTP和cPanel等服务的证书,被称为服务证书,它与任何单个域名的证书是分开的。要查看或替换它,请打开SSL/TLS > Manage Service SSL Certificates。要让服务器主机名证书通过AutoSSL顺利签发,该主机名必须是一个能够解析到服务器主要公共IP地址的完全限定域名。
常见问题
WHM是服务器管理面板,供root或经销商账户使用,它可以通过在域上安装SSL证书为服务器上托管的任何域名安装证书。cPanel是单个账户面板,单个站点所有者只能管理自己的域名。您粘贴的证书、密钥和CA捆绑包在两者中是相同的;区别在于访问权限的级别。
在WHM中,进入SSL/TLS > Install an SSL Certificate on a Domain。该界面有三个框:Certificate用于粘贴您的域名证书,Private Key用于粘贴您与CSR一起生成的密钥,Certificate Authority Bundle (optional)用于粘贴中间证书。粘贴每个文件的完整内容,包括BEGIN和END这两行,然后点击Install。
不需要。AutoSSL会自动签发免费的域名验证证书,并为您处理CSR和密钥。只有当您要向证书颁发机构购买证书并手动安装时,才需要生成CSR。
主机名以及邮件、FTP等服务使用的是服务证书,而不是针对单个域名的证书。可以在SSL/TLS > Manage Service SSL Certificates下管理它。要让AutoSSL签发主机名证书,服务器主机名必须是一个能够解析到服务器主要公共IP地址的完全限定域名。
这说明您粘贴的私钥并非为该证书对应的CSR所创建的密钥。请使用与该确切CSR一起生成的密钥。如果您在这台WHM服务器上生成了CSR,可以点击Autofill by Domain来获取正确的密钥。如果密钥已丢失,请向您的证书颁发机构申请使用新的CSR和密钥重新签发证书。


