bg-tutorials

如何在CWP上生成CSR

本指南将向您展示如何在 CWP 中生成 CSR(证书签名请求),CWP 是原本称为 CentOS Web Panel 的主机控制面板,在 CentOS 于 2024 年 6 月停止维护后,现已更名为 Control Web Panel

该项目保留了 CWP 这一缩写,现在运行在兼容 RHEL 的发行版上,例如 AlmaLinux、Rocky Linux、RHEL 和 CloudLinux。以下的 CSR 生成步骤在所有这些系统上都是一样的。

CWP 会同时生成 CSR 及其对应的私钥,将私钥保存在服务器上,并给您一段文本内容,供您粘贴到证书颁发机构的订单表单中。同一个表单适用于单域名、多域名(SAN)以及通配符证书。

在 CWP 中生成 CSR

如果您已经使用其他工具生成了 CSR,可以直接跳到如何在 CWP 上安装 SSL 证书。否则,请按照以下步骤操作。这些标签名称与当前的 CWPpro 管理面板一致;若旧版菜单名称不同,会另作说明。

步骤 1:打开 SSL Cert Manager

  1. root 身份登录 CWP 管理区域。管理面板默认监听端口 2030(HTTP)或 2031(HTTPS)。
  2. 在左侧菜单中,点击 WebServer Settings(在旧版 CWP 中标记为 Apache Settings)。
  3. 在展开的菜单中,选择 SSL Cert Manager(在某些版本中也显示为 SSL Certificates)。
  4. 切换到 Generate CSR 选项卡。

步骤 2:填写 CSR 表单

请完整填写每一个字段。CWP 会将这些值直接传递给 OpenSSL,因此拼写和格式都很重要。对于域名验证型(DV)证书,CA 不会验证组织信息字段,但如果填写了,这些信息仍会出现在签发的证书中,因此请准确填写。

  • Common Name(域名):您要保护的完全限定域名(FQDN),例如 www.example.com。对于通配符证书,请在顶级域名前加上星号(例如 *.example.com),以覆盖所有一级子域名。
  • Country Name(国家代码):组织注册所在国家的两字母 ISO 3166-1 代码(例如 USGBDE)。
  • State or Province Name(省/州名称):省、州或地区的全称,不要缩写。
  • City Name(城市名称):组织注册所在城市的全称,不要缩写。
  • Organization Name(组织名称):拥有该域名的公司法定名称。对于个人申请的 DV 证书,请填写您的全名或填写 NA。切勿在此处填写域名。
  • Organization Unit Name(组织单位名称):CA/浏览器论坛已弃用此字段,因此大多数公共 CA 会在签发的证书中将其移除。可以留空或填写 NA
  • Email Address(电子邮件地址):留空即可。现代公共 CA 已不再使用此字段进行验证,签发的证书主题中也不会显示该信息。
  • Valid Days(有效天数):此处的默认值仅影响 CWP 在生成 CSR 时可能一并创建的自签名测试证书。它对公共 CA 签发的正式证书没有任何影响,因此保留默认值即可。
  • Key Size(密钥长度):选择 2048 位。RSA-2048 是 2026 年最安全的默认选项,所有 CA 和客户端都支持它,并且它也是 CA/浏览器论坛的基准要求。更大的密钥长度(RSA-4096)虽然也允许使用,但会使握手成本翻倍,而对公共 TLS 而言并没有带来实质性的安全提升。

步骤 3:生成并复制 CSR

点击 Generate。CWP 会在服务器上创建两个文件:

  • CSR 文件,以 .csr 格式保存在 /etc/pki/tls/certs/ 中。
  • 与之配对的私钥,保存在 /etc/pki/tls/private/ 中。它也会显示在 SSL Cert Manager 的 Private Key 选项卡中。请勿删除该文件:在安装签发的证书时您将需要用到它。

使用任意文本编辑器打开 CSR 文件,其内容大致如下:

-----BEGIN CERTIFICATE REQUEST-----
MIIC2zCCAcMCAQAwgZUxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlh
...base64 content of your CSR...
EE9aJDxhWjEFqYdxPpJv3yhT/4M3xZJP0YuVqYU3MA==
-----END CERTIFICATE REQUEST-----

选中整个内容块,包括 -----BEGIN CERTIFICATE REQUEST----------END CERTIFICATE REQUEST----- 这两行(标签两侧各有五个连字符),然后复制。在向证书颁发机构订购或重新签发证书时,将该内容块粘贴到 CSR 字段中。提交之前,请使用我们的 CSR 解码器对 CSR 进行核对,确认通用名称、SAN 列表、密钥长度以及签名算法是否符合预期。

如果您希望完全跳过 CWP 的表单,也可以使用我们的 CSR 生成器在服务器之外创建 CSR。但请注意,这样一来对应的私钥也会在服务器之外生成,因此在安装时您需要同时上传签发的证书和私钥,而不能让 CWP 自动将证书与服务器上的私钥配对。

替代方法:使用 OpenSSL 在服务器上生成 CSR

CWP 本质上是运行在标准 RHEL 系列 Linux 服务器上的 Apache 或 Nginx 之上的一个网络控制层,因此您也可以直接在 shell 中使用 OpenSSL 生成 CSR。如果您需要通过脚本自动完成证书续期,或更喜欢使用命令行,这种方式会很有用。以 root 身份通过 SSH 连接服务器,然后运行:

openssl req -new -newkey rsa:2048 -nodes 
  -keyout /etc/pki/tls/private/example.com.key 
  -out /etc/pki/tls/certs/example.com.csr 
  -addext "subjectAltName=DNS:example.com,DNS:www.example.com"

随后 OpenSSL 会提示您输入与 CWP 表单中相同的字段(Common Name、Country、State、Locality、Organization、Organizational Unit、Email)。请按照步骤 2 中所述的方式填写相同的内容。在您回答提示的过程中,-addext 参数依然有效,正是它将主题备用名称(Subject Alternative Names)写入请求当中:如果没有它,CSR 将不含 SAN 列表,也就无法覆盖多个主机名。该命令会将 CSR 写入 /etc/pki/tls/certs/example.com.csr,并将私钥写入 /etc/pki/tls/private/example.com.key,这两个路径与 CWP 使用的位置一致,因此后续在安装证书时,SSL Cert Manager 会自动识别这些文件。

请锁定该私钥文件,使其仅可被 root 读取:

chmod 600 /etc/pki/tls/private/example.com.key

何时不需要 CSR:AutoSSL(Let’s Encrypt)

如果您只需要一张基本的域名验证型证书,CWP 可以通过内置的 Let’s Encrypt 集成免费签发并续期证书,面板会在后台自动为您处理 CSR。在管理区域中,打开 WebServer Settings > SSL Cert Manager,切换到 AutoSSL(或 Let’s Encrypt)选项卡,选择要保护的用户和域名,然后点击 Install SSL。拥有自己 CWP 账户的终端用户,也可以在用户面板的 Domains > AutoSSL 中执行相同的操作。

Let’s Encrypt 证书的有效期为 90 天,CWP 会在到期前大约 30 天自动为其续期。签发的文件存放在 /etc/letsencrypt/live/<domain>/ 目录下。只有在您购买了付费证书(组织验证型、扩展验证型、带额外保修的通配符证书、多域名证书)或您的 CA 要求提供 CSR 以进行重新签发时,才需要自行生成 CSR。

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

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

龙飞行的详细图像
撰写人

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