将 Let's Encrypt SSL 证书颁发机构与 PAM360 集成

Let's Encrypt 是由互联网安全研究组 (ISRG) 开发的一款免费、自动化且开源的证书颁发机构,其主要目的是降低建立 HTTPS 连接的复杂性,并简化整体证书安装流程。截至目前,Let's Encrypt 仅签发域名验证型证书。组织验证型和扩展验证型证书目前不可用,且近期内也没有计划提供。有关 Let's Encrypt 证书颁发机构的更多信息,请点击 此处

PAM360 通过与知名的开源证书颁发机构 Let's Encrypt 集成,为您的对外网站提供端到端的证书生命周期管理。这意味着您可以为公共域名从 Let's Encrypt 获取域名验证型证书,并直接在 PAM360 界面中完成证书的部署、跟踪、到期提醒设置以及续期等所有操作。

请按照以下分步指南将 Let's Encrypt 证书颁发机构与 PAM360 集成:

  1. 创建 Let's Encrypt 账户
  2. 提交证书申请
  3. 配置 DNS 账户
  4. 通过挑战验证进行域名验证
  5. 获取并保存证书
  6. 管理 Let's Encrypt 签发的证书

注意

请在防火墙或代理中将以下基础 URL 和端口添加为例外,以确保 PAM360 能够连接到 Let's Encrypt 的 CA 服务。

1. 创建 Let's Encrypt 账户

向 Let's Encrypt CA 申请证书的第一步是创建 Let's Encrypt 账户。此为一次性操作,可直接在 PAM360 界面内完成。创建 Let's Encrypt 账户的步骤如下:

  1. 导航至“证书”>>“Let's Encrypt”>>“管理”。
  2. “账户”选项卡下,点击“新建注册”。
  3. 在弹出的界面中,输入账户名称并填写有效的电子邮件地址。根据您的需求,选择“生产环境”或“测试环境”
  4. 勾选复选框以接受 Let's Encrypt 订阅协议,然后点击“注册”
  5. 系统将创建一个 Let's Encrypt 账户。

    注意

    此权限仅对具有管理员权限的用户开放,且通过 PAM360 仅能创建一个 Let's Encrypt 账户。

    lets-encrypt-1

2. 提交证书申请

在 Let's Encrypt 上创建账户后,您需要生成证书请求。随后系统将向您发出验证挑战,您必须完成该挑战,以便 Let's Encrypt 验证您的域名并签发证书。

  1. 导航至“证书” >> “Let's Encrypt” >> “证书请求”。
    lets-encrypt-2
  2. 填写域名,选择密钥算法算法长度 签名算法密钥库类型,输入密钥库密码,然后 点击“创建”
  3. 对于 dns-01 验证类型,如果您已配置 DNS 凭据,可从下拉菜单中选择并分配一个DNS账户。该账户将用于对请求中指定的所有域名进行自动验证。
  4. 此外,您可以在证书续期时选择更改私钥。
    1. 如果您需要更改密钥,请选择“新密钥”。此选项将在每次证书续期时生成一个新密钥。
    2. 如果您希望在续期时保留相同的密钥,请使用“使用相同密钥”选项。
    3. 若要使用您自己的密钥,请选择“导入密钥”选项。该密钥将在生成证书时首次使用,并用于后续的续期操作。 

3. 配置 DNS 账户

  1. 导航至Let's Encrypt >> 管理。
  2. 切换至“DNS”选项卡。
    lets-encrypt-3
  3. 在此,您可以为每个受支持的 DNS 提供商最多添加一个 DNS 账户。PAM360 目前支持 Azure、Cloudflare DNS、Amazon Route 53 DNS、RFC2136 DNS 更新 (nsupdate)、GoDaddy DNS 以及 ClouDNS 的自动挑战验证。
  4. 点击“添加”。在弹出的窗口中,选择 DNS 提供商。

3.1 Azure DNS

  1. 提供订阅 ID,该信息可在Azure DNS 区域“概览”页面中找到
  2. 提供目录 ID,该信息可在Microsoft Entra ID >> 属性中找到。
    lets-encrypt-4
  3. 如果您已有现有的 Azure 应用程序,请提供其应用程序 ID和密钥。如果没有,请按照以下步骤创建 Azure 应用程序和密钥,并授予该应用程序访问 DNS 区域的权限以进行 API 调用。
  4. 要创建 Azure 应用程序和密钥,
    1. 请导航至“应用注册”>>“新建应用注册”。
    2. 输入应用程序名称,选择“Web 应用/API”作为应用程序类型,并提供登录 URL。点击“创建”。
    3. 创建成功后,系统将跳转至显示应用程序 ID的页面
    4. 要获取应用程序密钥,请导航至“密钥”并创建一个密钥。
    5. 输入密钥描述、有效期,然后点击“保存”。
    6. 密钥保存后,将显示密钥值。请复制并保存该密钥值以备后用。
  5. 要授予应用程序访问 DNS 区域的权限,
    1. 请导航至包含所有 DNS 区域的资源组,或切换至特定的 DNS 区域。
    2. 切换至“访问控制 (IAM)”,然后点击“添加”。
    3. 选择“贡献者”角色,将访问权限分配给Microsoft Entra ID 用户、组或应用程序,搜索并选择在 Microsoft Entra ID 中创建的应用程序,然后点击“保存”。
    4. 现在,已创建的 Azure 应用程序已获得访问 DNS 区域的权限,可用于发起 API 调用。
  6. 最后,输入“资源组名称”(即您创建 DNS 区域所在的资源组名称),然后点击“保存”。
  7. 您的 DNS 账户详细信息已保存,并列在“管理 >> DNS”下

3.2 Cloudflare DNS

  1. “电子邮件地址”字段中,请指定与 Cloudflare 账户关联的电子邮件地址。
    lets-encrypt-5
  2. 对于“全局 API 密钥”,请使用 Cloudflare DNS 域名概览页面中的“生成 API 密钥”选项生成密钥,并将生成的值粘贴到此字段中。
  3. 点击“保存”。您的 DNS 账户详细信息已保存,并列在“管理 >> DNS”下

3.3 AWS Route 53 DNS

  1. 生成并指定与您的 AWS 账户关联的访问密钥 ID和密钥
  2. 如果您没有 AWS 账户,请创建一个,并按照以下步骤生成访问密钥 ID 和密钥:
    1. 登录 AWS 控制台,导航至IAM 服务 >> 用户
    2. 点击“添加用户”。
    3. 输入用户名,并将访问类型选为“程序化访问”
    4. 切换到下一选项卡,在“设置权限”正下方的“附加现有策略”处点击,并搜索“AmazonRoute53FullAccess”。
    5. 分配所列策略,然后切换到下一个选项卡。
    6. 在“标签”部分,添加适当的标签(可选),然后切换到下一个选项卡。
    7. 检查所有已输入的信息,然后点击“创建用户”。
    8. 用户账户创建完成后,系统将生成访问密钥 ID 和密钥。请将密钥 ID 和密钥复制并保存在安全位置,因为它们不会再次显示。
  3. 如果您已有 AWS 用户账户,则需向该用户授予“AmazonRoute53FullAccess”权限,并为用户生成访问密钥(若该用户尚未拥有)。若用户账户已关联访问密钥,只需确保已授予所需权限即可。

要授予所需的权限,请按照以下步骤操作:

  1. 转到“权限”选项卡,选择所需的用户账户,然后点击“添加权限”
  2. “设置权限”下方点击“附加现有策略”,并搜索“AmazonRoute53FullAccess”。
  3. 分配所列策略并点击“保存”
  4. 要生成访问密钥,
  5. 选择特定用户账户,然后转到“安全凭证”选项卡。
  6. 在弹出的窗口中,点击“创建访问密钥”。
  7. 系统将生成访问密钥 ID 和密钥。请将密钥 ID 和密钥复制并保存在安全位置,因为它们不会再次显示。
    amazon-route-53-dns

3.4 RFC2136 DNS 更新

如果您使用的是支持 RFC2136 DNS 更新的开源 DNS 服务器(如 Bind、PowerDNS 等),请按照以下步骤操作,通过 PAM360 实现基于 DNS 的域名控制验证流程自动化:

  1. DNS 服务器 IP/主机名代表安装或运行 DNS 服务器的服务器名称/IP 地址。
  2. 服务器详细信息位于服务器安装目录中。例如,对于 Bind9 DNS 服务器,您可以在服务器安装目录中的 named.local.conf 文件中找到这些详细信息。
  3. 请提供密钥密钥,即在服务器安装目录中找到的密钥内容。 
  4. 为密钥提供一个名称,选择签名算法,然后点击“保存”
      rfc2136update

3.5 GoDaddy DNS

如果您使用 GoDaddy DNS 进行 DNS 验证,请按照以下步骤操作,通过 PAM360 实现基于 DNS 的域名控制验证流程自动化。

要获取 GoDaddy API 凭据,请按照以下步骤操作:

  1. 前往 GoDaddy 开发者门户 并切换到“API 密钥”选项卡。
  2. 如果您尚未登录,请登录您的 GoDaddy 账户。
  3. 登录后,您将被重定向至 API 密钥页面,在此您可以创建和管理 API 密钥。点击“创建新 API密钥”。
  4. 输入您的应用程序名称,将环境类型选为“生产环境”,然后点击“下一步”。
  5. 系统将生成 API 密钥及其密钥密文。请复制并将其保存在安全位置,因为该密钥密文不会再次显示。

现在,在 PAM360 界面中,请按照以下步骤将 GoDaddy DNS 添加到 Let's Encrypt 证书存储库:

  1. 导航至“证书”>>“Let's Encrypt”,并点击右上角的“管理”
  2. 切换至“DNS”选项卡,然后点击“添加”
  3. 从“DNS 提供商”下拉菜单中选择GoDaddy
  4. 输入之前在 GoDaddy 门户中生成的密钥密钥密文。点击“保存”
    godaddy-dns

3.6 ClouDNS

如果您使用 ClouDNS 进行 DNS 验证,请按照以下步骤使用 PAM360 自动化基于 DNS 的域名控制验证流程:

要获取 ClouDNS API 凭据,请按照以下步骤操作:

  1. 登录您的 ClouDNS 账户,进入“经销商 API”
  2. 如果您已创建过 API 用户 ID,可在“API 用户”下找到它。若未创建,请点击“创建 API”生成一个新的。

点击 此处 了解有关 ClouDNS API 认证 ID 的更多信息。

现在,在 PAM360 界面中,请按照以下步骤将 ClouDNS 添加到 Let's Encrypt CA:

  1. 导航至“证书”>>“ACME”>>“Let's Encrypt”,并点击右上角的“管理”
  2. 切换至“DNS”选项卡,点击“添加”
  3. “DNS 提供商”下拉菜单选择ClouDNS
  4. 选择以下选项之一:Auth ID、Sub Auth ID 或 Sub Auth User
  5. 输入所选的 ClouDNS 认证 ID 及其对应的认证密码,然后点击“保存”
    cloudns

3.7 DNS Made Easy

  1. “名称”字段中输入您选择的名称。
  2. 密钥和 密钥密文可在 DNS Made Easy 网页的“配置 >> 账户信息”下查看。请在相应字段中输入这些信息。
  3. 现在,点击“保存”以保存您的 DNS 账户信息。已保存的 DNS 信息将显示在“管理 >> DNS”下。
    dnsmadeeasy

其他详细信息

  • 一个证书最多可保护 100 个域名。您可以在“域名”字段中最多输入 100 个名称,其中第一个名称被视为通用名称,其余名称则被视为主题备用名称 (SAN)。
  • PAM360 支持基于 http-01 和 dns-01 的域名验证。请根据您的需求选择验证类型。
  • 对于基于 DNS-01 的域名验证,如果您使用已配置的 DNS 账户进行验证,请确保在“管理 >> DNS”下,所选 DNS 账户的状态已标记为“已启用”
  • 当前“更改私钥”选项仅支持 RSA 密钥算法。

4. 通过挑战验证进行域名验证

PAM360 通过自动验证 HTTP-01 和 DNS-01 挑战(目前支持 Azure、Cloudflare、Amazon Route 53 DNS、RFC2136 DNS 更新、ClouDNS 以及 GoDaddy DNS)来加速域名验证。要使自动化生效,您需要先将目标服务器的详细信息映射到 PAM360,这是一个仅需执行一次的过程。

4.1 通过 HTTP-01 验证挑战进行域名验证

通过 HTTP-01 验证挑战进行域名验证

  1. 此时将弹出一个窗口,显示需要完成的验证任务。
  2. 点击代理映射图标。
  3. 将弹出一个窗口。如果域名服务器是 Linux 机器,请填写所需信息并点击“保存”
  4. 如果域名服务器是 Windows 机器, 请下载并安装 Windows 代理程序。
  5. 完成代理映射设置后(代理映射只需配置一次),PAM360 将自动处理 Let's Encrypt 发出的验证挑战。
  6. 配置完代理映射后,在待处理请求中点击“待处理”,然后点击“验证”。系统将验证挑战并将证书请求提交至 Let's Encrypt 证书颁发机构 (CA)。
    lets-encrypt-6

4.2 通过 DNS-01 验证挑战进行域名验证

对于 PAM360 的 DNS-01 挑战验证,

  1. 切换至“Let's Encrypt”选项卡,并点击与该证书请求对应的请求状态(“待处理”)
  2. 系统将引导您进入一个显示 DNS 验证码和 TXT 记录的窗口。
  3. 如果您已配置好DNS账户信息,并在创建证书请求时选择了 DNS,则可以将该 DNS 账户分配给该请求。 
  4. 选择该请求,从顶部“更多”菜单中选择“分配 DNS”,然后选择所需的 DNS 账户。
  5. 如果您尚未配置DNS帐户,或者在提交证书请求时未选择 DNS,PAM360 提供了一个选项,可通过“代理映射”自动进行 DNS-01 验证。
  6. 点击请求左侧的“代理映射”图标。代理映射只需配置一次。

在弹出的“部署”窗口中,执行以下操作以将您的终端服务器详细信息映射并保存至 PAM360。

  1. 选择您的 DNS 提供商。对于 Azure DNS,请提供所需的详细信息——订阅 ID目录 ID应用程序 ID应用程序密钥和 资源组名称
    lets-encrypt-7
  2. 对于 Cloudflare DNS,请输入与您的 Cloudflare 账户关联的电子邮件地址以及全局 API 密钥
    lets-encrypt-8
  3. 对于 Amazon Route 53 DNS,请输入与您的 AWS 账户关联的访问密钥 ID 和密钥
  4. 勾选“部署证书”复选框,以便在域名验证通过以及后续续期后,自动将证书部署到相应的终端服务器。
  5. 对于 Linux 终端服务器,请提供所需详细信息;对于 Windows 终端服务器,请按照与 http-01 验证相同的步骤下载并安装 Windows 代理。
  6. 填写完详细信息后,点击“保存”。终端服务器的详细信息已成功映射并存储在 PAM360 中,您可通过“管理”>>“部署”选项卡进行查看或编辑。

其他详细信息

  • 您只能通过 Let's Encrypt 集成申请并获取公共域名的证书。
  • 挑战验证也可在不使用自动化功能的情况下手动完成。请手动将挑战值/文本记录复制并粘贴到您的域名服务器中。随后在 PAM360 服务器中,导航至“待处理请求”页面并点击“验证”。系统将验证挑战并签发证书。
  • 仅当“代理映射”不可用时,PAM360 才会通过DNS自动验证证书请求的挑战。如果“管理 >> 部署”选项卡中提供了代理详细信息,则挑战验证将通过代理自动完成
  • 目前,PAM360 代理仅支持 Windows 服务器。
  • 如果您为 RFC2136 DNS 更新选择了“全局 DNS 配置”,则域名本身即作为区域名称(仅所有区域使用相同的密钥密钥时,才可进行全局 DNS 配置)。而如果您选择了“域名-代理映射”,则必须为每个域名分别提供区域名称、密钥名称和密钥密钥。

5. 获取并保存证书

  1. 验证成功后,Let's Encrypt 将签发所请求的证书。
  2. 窗口将自动跳转至显示证书及其状态的页面(若验证成功,状态显示为“可用”;若验证失败,则显示为“失败”)。
  3. 点击“可用”按钮,将证书保存至 PAM360 存储库、通过电子邮件发送或导出。
  4. 如果验证失败,请点击“新挑战”以获取另一组挑战,并重复上述过程。
  5. 保存后,证书将被添加到 PAM360 存储库中,可在“证书 >> 证书”选项卡中 查看。
    lets-encrypt-9

6. 管理 Let's Encrypt 签发的证书

本节说明如何续期、撤销和删除由 Let's Encrypt 证书颁发机构签发的证书。

6.1 证书续期

Let's Encrypt 签发的证书有效期为 90 天,到期后即失效。此外,如前所述,域名验证的有效期为 60 天,这意味着用户必须每 60 天完成一次验证挑战,以证明其对域名的所有权。

证书续期可通过手动操作或借助自动域名验证功能自动完成。若要手动续期证书,

  1. 导航至“证书”>>“Let's Encrypt”。
  2. 选择您要续期的证书,然后点击“续期证书”按钮
  3. 证书已续期,且“证书状态”栏显示为“已续期”
  4. 点击该按钮,将证书的续期版本保存至 PAM360 证书存储库。
  5. 可通过在“证书”>>“证书”选项卡 中点击“证书历史”按钮查看续期记录。

    注意

    证书在续期后应予以保存,以便在证书存储库中更新。否则,存储库中将仅保留证书的旧版本。

    lets-encrypt-10

通过自动域名验证进行自动续期

若已配置代理映射,证书续期流程将自动完成,无需人工干预。您组织内所有从 Let's Encrypt 获取的证书均会在每 75 天后自动续期,即在到期前 15 天,系统会向账户持有人的电子邮箱发送通知。

注意

自动续期功能仅适用于保存在 PAM360 存储库中的证书。即,从 Let's Encrypt 获取证书后,必须将其保存至存储库,自动续期功能才能生效。

6.2 撤销证书

撤销证书将导致该证书失效,并立即从网站中移除 HTTPS。

要撤销证书,

  1. 导航至“证书 >> Let's Encrypt”选项卡
  2. 选择要撤销的证书,然后点击“撤销证书”。
  3. 证书已被撤销,不再有效。
    lets-encrypt-11

6.3 删除证书

删除证书会将其从 PAM360 存储库中移除,但该证书仍然有效。

要删除证书,

  1. 导航至“证书 >>“Let's Encrypt”选项卡
  2. 选择要删除的证书,然后点击“删除”
  3. 该证书已从 PAM360 数据库中删除。
    lets-encrypt-12



Top