bg-tutorials

如何在 DirectAdmin 中生成 CSR

本指南向您展示如何在 DirectAdmin 中生成 CSR(证书签名请求)。CSR 是您提交给证书颁发机构的编码文本块。它携带您的域名和身份信息,DirectAdmin 会将其与服务器上存储的私钥配对。您将从控制面板的User级别创建 CSR,最终得到两部分内容:您复制到订单中的 CSR 文本,以及 DirectAdmin 保存在磁盘上、用于安装步骤的匹配私钥。

以下步骤涵盖当前 DirectAdmin Evolution皮肤(新安装中的默认设置),并指出了在旧版Enhanced皮肤上的对应路径。它们还涵盖了面板内表单的 SAN 限制,以及同一屏幕中提供的免费Let’s Encrypt替代方案。

在 DirectAdmin 中生成 CSR

如果您已经生成了 CSR(例如使用我们的CSR 生成器),请直接跳到如何在 DirectAdmin 上安装 SSL 证书。否则请按照以下七个步骤操作。

第一步:以 User 级别登录

DirectAdmin 中的 SSL 证书是在User级别按域名管理的。如果您以AdminReseller身份登录,请先使用顶部菜单中的级别选择器切换到正确的用户。如果该账户持有多个域名,请在打开 SSL 屏幕之前选择您要保护的域名。

第二步:打开 SSL Certificates 页面

  • Evolution 皮肤(当前默认):在左侧菜单中打开Account Manager,然后点击SSL Certificates
  • Enhanced(旧版)皮肤:打开Advanced Features,然后点击SSL Certificates

第三步:选择 Create a Certificate Request

SSL Certificates 页面会显示一系列单选选项。选择Create A Certificate Request。这是面板内的 CSR 表单,该选项名称在每种皮肤中都相同。

第四步:填写 CSR 字段

输入以下详细信息。请使用纯 ASCII 字符:非拉丁字母会导致请求在大多数 CA 处失败。

  • Key Size(密钥大小):选择2048位。这是当前所有公共 CA 都接受的最低要求。仅在您的安全策略要求时才选择30724096。代价是 TLS 握手会略微变慢。
  • Common Name(CN,通用名称):您要保护的完全限定域名,例如www.example.com。对于通配符证书,在顶级域名前加上星号,例如*.example.com。通配符只覆盖一层子域名(shop.example.commail.example.com),不包括顶级域名本身或更深层的标签,如a.b.example.com
  • Email(邮箱):该域名下的联系地址或您的管理邮箱。大多数 CA 会忽略此字段,但 DirectAdmin 要求必须填写。
  • Country(国家):两位字母的 ISO 国家代码(例如USGBDE)。
  • State(州/省):完整的州或省名称(例如California,而不是CA)。
  • City(城市):完整的城市名称(例如Los Angeles,而不是LA)。
  • Company(公司):完整的法定组织名称,须与注册信息完全一致(例如Example Inc)。对于组织验证(OV)和扩展验证(EV)证书,此项为必填。对于域名验证(DV),CA 会忽略该字段,因此填写任何简短的占位符均可。
  • Division(部门,即组织单位):部门标签,例如IT。此属性已被 CA/Browser Forum 弃用于公共证书,因此请留空或填写最少内容。
  • Subject Alternative Names(SAN,主题备用名称):如果您的版本上的表单提供了 SAN 字段,请在此处逐行添加每个额外的主机名(例如example.com以及www.example.com)。如果没有该字段,请参阅下方的SAN 限制

第五步:保存并复制 CSR

仔细检查每个字段,然后点击Save。DirectAdmin 会生成私钥和匹配的 CSR,并在同一页面的文本区域中显示 CSR(较新的 Evolution 版本会在Certificate Request对话框中打开,并带有Copy to Clipboard按钮)。

CSR 是一个 base64 编码块,看起来像这样:

-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWEx
... (many lines of base64) ...
-----END CERTIFICATE REQUEST-----

选中整个块,包括BEGIN CERTIFICATE REQUESTEND CERTIFICATE REQUEST这两行,并将其粘贴到您的 CA 订单表单中的 CSR 字段。开头和结尾的短横线必须每侧恰好使用五个 ASCII 连字符。

第六步:检查 DirectAdmin 存储私钥的位置

您不需要手动提取私钥:DirectAdmin 会将其保存在磁盘上,并在同一域名的 SSL 安装表单中预先填充。如果您想为备份或离线使用保留一份副本,可以从同一页面下载(表单会将其保留在下方的文本框中),也可以通过 SSH 从磁盘读取:

/usr/local/directadmin/data/users/<user>/domains/<domain>.key

其中<user>是 DirectAdmin 用户名,<domain>是域名(例如example.com.key)。与之对应的文件是<domain>.cert(安装过程中写入的已签发证书)和<domain>.cacert(Apache 的 SSLCACertificateFile 所引用的证书链;某些 DirectAdmin 版本还会以<domain>.ca的形式暴露相同内容)。请将密钥文件视为机密:严格控制其权限,切勿将其粘贴到 CSR 字段、工单或任何公开位置。如果您确实要在服务器外保存副本,请将其作为安全笔记存储在密码管理器或密钥保险库中,而不是作为松散文件存放在工作站上。

第七步:提交前验证 CSR

在花费一个验证周期之前,值得检查一下 Common Name、SAN 条目和密钥大小是否符合您的预期。将 CSR 粘贴到 SSL Dragon 的CSR 解码器中,确认 CN 与访问者使用的主机名匹配,确认任何附加名称都出现在 Subject Alternative Name 下,并确认密钥大小至少为 2048 位。

一旦 CA 验证了您的订单并通过邮件发送证书文件,请继续参阅如何在 DirectAdmin 上安装 SSL 证书

面板内表单的 SAN 限制

现代浏览器和 TLS 库(Chromium、Firefox、Safari、Java、Go、.NET)会根据Subject Alternative Name扩展来检查主机名,而不是 Common Name。公共 CA 通过在单一域名订单中自动将 CN 复制到 SAN 条目来解决这个问题,因此仅含 CN 的请求仍可为单个主机名签发证书。但是:

  • 如果您需要一张同时覆盖example.comwww.example.com的证书,或任何多域名证书,仅含 CN 的表单无法对其进行编码。
  • 某些 DirectAdmin 版本在表单上提供了专门的Subject Alternative Names字段。如果您的版本有此字段,请使用它。

如果面板表单不允许您添加 SAN,而您的订单需要多个主机名,请使用我们的CSR 生成器在服务器外生成 CSR,保存其生成的私钥,并在证书到达后将两者都粘贴到 DirectAdmin 的安装页面中。DirectAdmin 安装教程详细介绍了该流程。

或者,您也可以通过 SSH 使用 OpenSSL 和一个列出每个 SAN 的小型配置文件来构建 CSR:

openssl req -new -newkey rsa:2048 -nodes 
  -keyout example.com.key 
  -out example.com.csr 
  -subj "/C=US/ST=California/L=Los Angeles/O=Example Inc/CN=www.example.com" 
  -addext "subjectAltName = DNS:www.example.com, DNS:example.com"

然后在同一 SSL Certificates 页面上,将.key文件和已签发的证书粘贴到 DirectAdmin 的Paste a pre-generated certificate and key选项中。

免费选项:DirectAdmin 中的 Let’s Encrypt 与 ACME

如果您不需要商业证书,DirectAdmin 可以完全不需要 CSR 就签发一张免费证书。在同一个SSL Certificates页面上,选择Free & automatic certificate from Let’s Encrypt(在较新的 Evolution 版本中,该选项标记为Get automatic certificate from ACME Provider,并提供Let’s EncryptZeroSSL两种颁发机构选择)。选择要覆盖的域名和任何子域名,如果需要覆盖所有子域名,请勾选Wildcard,然后点击Save

Let’s Encrypt 和 ZeroSSL 证书的有效期约为 90 天,当证书的存续天数超过letsencrypt_renewal_days中设置的天数(默认值为 60)时,DirectAdmin 会自动续订。这大约是到期前 30 天,因此即使续订失败,仍有一个月的重试时间。较旧的 DirectAdmin 版本默认值为 85,几乎没有留出余地。无论哪种方式,都无需复制 CSR,也无需重新安装证书。它们使用与付费证书相同的加密方式。当您需要组织验证或扩展验证、更长的固定期限、担保,或与您的域名身份相关联的供应商支持时,商业证书仍然有其意义。

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

龙飞行的详细图像
撰写人

经验丰富的内容撰稿人, 擅长 SSL 证书. 将复杂的网络安全主题转化为清晰, 引人入胜的内容. 通过有影响力的叙述, 为提高数字安全作出贡献.