bg-tutorials

如何为Pound生成CSR

本教程介绍如何为 Pound(轻量级反向代理和负载均衡器)生成 CSR(证书签名请求)。由于 Pound 没有内置的 CSR 工具,您需要使用 OpenSSL 创建 CSR 和私钥,然后将 CSR 提交给证书颁发机构。

注意: 最初的 Apsis Pound 项目在 2022 年 9 月 Apsis GmbH 解散后已停止维护。目前积极维护的后续版本是 graygnuorg/pound 分支(目前版本为 4.x)。下面介绍的 CSR 生成流程同时适用于旧版 Pound 和当前的分支版本,因为该流程依赖于 OpenSSL,而非 Pound 本身。

生成 CSR 和私钥

您有两种方式来生成 CSR:

  • 使用 CSR 生成器 自动创建 CSR,无需运行任何命令。
  • 如下所述,在运行 Pound 的服务器上使用 OpenSSL 手动生成 CSR。

第 1 步:运行 OpenSSL 命令

通过 SSH 连接到您的 Pound 服务器,并运行以下命令。将每个占位符替换为您的实际信息:

openssl req -new -newkey rsa:2048 -sha256 -nodes 
  -keyout yourdomain.key 
  -out yourdomain.csr 
  -subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=yourdomain.com" 
  -addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

这个命令会在当前目录中创建两个文件:

  • yourdomain.key,您的私钥。请妥善保管该文件,切勿与他人共享。
  • yourdomain.csr,即您将提交给 CA 的证书签名请求。

第 2 步:了解各字段含义

-subj 字符串中的每个字段都用于向证书颁发机构标识您的组织:

  • C:两位字母的国家代码(例如 US)。
  • ST:州或省份(例如 California)。
  • L:城市或地区(例如 San Jose)。
  • O:完整的法定组织名称(例如 Your Company LLC)。
  • CN:您要保护的完全限定域名(例如 yourdomain.com)。

-addext 选项用于添加使用者备用名称(SAN)。现代浏览器会根据 SAN 列表而非 CN 字段来验证证书。请包含所有应受保护的域名变体,例如同时包含 yourdomain.comwww.yourdomain.com

第 3 步:验证并提交 CSR

使用任意文本编辑器打开 CSR 文件,或将其输出到终端:

cat yourdomain.csr

输出内容以 -----BEGIN CERTIFICATE REQUEST----- 开头,以 -----END CERTIFICATE REQUEST----- 结尾。请复制整个内容块(包括这两行边界标记),并在订购证书时粘贴到 CSR 字段中。在提交之前,您还可以使用 解码 CSR 工具验证 CSR 内容。

第 4 步:保护私钥安全

私钥文件(yourdomain.key)会与 CSR 一起生成。请将其移动到安全位置,并限制其访问权限:

sudo mkdir -p /etc/ssl/private
sudo mv yourdomain.key /etc/ssl/private/
sudo chmod 600 /etc/ssl/private/yourdomain.key

Pound 上安装 SSL 时会用到此密钥。如果私钥丢失,您将需要生成新的 CSR 并重新颁发证书。

接下来的步骤:在 Pound 上安装证书

当 CA 验证您的请求并颁发证书后,您将收到证书文件(通常包括一个服务器证书和一个中间证书的 CA 捆绑包)。Pound 要求将所有这些文件连同私钥,按照特定顺序合并到一个 PEM 文件中:

  1. 您的服务器证书(例如 yourdomain.crt)。
  2. 中间证书(CA 捆绑包)。
  3. 您的私钥(例如 yourdomain.key)。

合并命令如下所示:

sudo sh -c 'cat yourdomain.crt yourdomain.ca-bundle /etc/ssl/private/yourdomain.key > /etc/ssl/pound.pem'
sudo chmod 600 /etc/ssl/pound.pem

请注意密钥文件的路径:第 4 步已将其移动到 /etc/ssl/private/ 目录下,因此它不再位于您运行 OpenSSL 命令时所在的目录中。该文件中的私钥不得设置密码保护,因为 Pound 是以守护进程方式运行的,无法提示输入密码,这正是上述命令中 -nodes 选项所解决的问题。合并后的文件包含您的私钥,因此请确保只有 root 用户可以读取该文件。然后,您需要使用 Cert 指令,将 Pound 的 ListenHTTPS 配置块指向这个合并后的文件。完整的安装步骤请参阅如何在 Pound 上安装 SSL 证书

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

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

龙飞行的详细图像
撰写人

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