创建证书以允许 Azure 应用程序网关中的后端

若要执行端到端 TLS,应用程序网关要求通过上传身份验证证书/受信任根证书来允许后端实例。 允许使用证书时,对于 v1 SKU,身份验证证书是必需的,但对于 v2 SKU,受信任的根证书是必需的。

在本文中,学习如何:

  • 从后端证书中导出身份验证证书(对于 v1 SKU)
  • 从后端证书中导出受信任的根证书(适用于 v2 SKU)

先决条件

若要允许应用程序网关中的后端实例,需要使用现有的后端证书来生成身份验证证书或受信任的根证书。 后端证书可与 TLS/SSL 证书相同,为了提高安全性,两者也可以不同。 应用程序网关不会提供任何机制用于创建或购买 TLS/SSL 证书。 对于测试,可以创建自签名证书,但不应将其用于生产工作负荷。

导出身份验证证书(对于 v1 SKU)

需要使用一个身份验证证书来允许应用程序网关 v1 SKU 中的后端实例。 该身份验证证书是后端服务器证书的公钥,采用 Base-64 编码的 X.509(.CER) 格式。 此示例使用 TLS/SSL 证书作为后端证书,并导出其公钥以用于身份验证认证。 另外,此示例使用 Windows 证书管理器工具导出所需的证书。 你可以选择使用任何其他便利的工具。

从 TLS/SSL 证书中导出公钥 .cer 文件(不是私钥)。 以下步骤可帮助你导出证书的 .cer 文件,其格式为 Base-64 编码的 X.509(.CER):

  1. 若要获取证书 .cer 文件,请打开“管理用户证书”。 找到该证书(通常位于“证书 - 当前用户”>“个人”>“证书”中),并单击右键。 单击“所有任务”,并单击“导出”。 此操作将打开“证书导出向导” 。 如果想要使用 PowerShell 在当前用户范围内打开证书管理程序,请在控制台窗口中键入“certmgr” 。

    注意

    如果在 Current User\Personal\Certificates 下找不到证书,可能会意外地打开“Certificates - Local Computer”而不是“Certificates - Current User”)。

    Screenshot shows the Certificate Manager with Certificates selected and a contextual menu with All tasks, then Export selected.

  2. 在向导中,单击“下一步” 。

    Export certificate

  3. 选择“否,不导出私钥” ,并单击“下一步” 。

    Do not export the private key

  4. 在“导出文件格式” 页上,选择“Base-64 编码的 X.509 (.CER)” ,并单击“下一步” 。

    Base-64 encoded

  5. 对于“要导出的文件” ,“浏览” 到要将证书导出的目标位置。 在“文件名” 中,为证书文件命名。 然后单击“下一步”。

    Screenshot shows the Certificate Export Wizard where you specify a file to export.

  6. 单击“完成” 导出证书。

    Screenshot shows the Certificate Export Wizard after you complete the file export.

  7. 证书已成功导出。

    Screenshot shows the Certificate Export Wizard with a success message.

    导出的证书类似于以下内容:

    Screenshot shows a certificate symbol.

  8. 如果使用记事本打开导出的证书,则会看到类似于此示例的一些内容。 蓝色部分包含已上传到应用程序网关的信息。 如果使用记事本打开证书,并且内容不与此类似,则这通常意味着你没有使用 Base-64 编码的 X.509(.CER) 格式将其导出。 此外,如果希望使用其他文本编辑器,请注意,某些编辑器可能会在后台引入意外的格式设置。 将此证书中的文本上传到 Azure 时,这可能会产生问题。

    Open with Notepad

导出受信任的根证书(适用于 v2 SKU)

需要使用一个受信任的根证书来允许应用程序网关 v2 SKU 中的后端实例。 此根证书是来自后端服务器证书的 Base-64 编码的 X.509(.CER) 格式根证书。 在此示例中,我们将使用 TLS/SSL 证书作为后端证书,并导出其公钥,然后从 base64 编码格式的公钥中导出受信任 CA 的根证书,以便获取受信任的根证书。 中间证书应该与服务器证书捆绑并安装在后端服务器上。

以下步骤用于导出证书的 .cer 文件:

  1. 使用前面的导出身份验证证书(适用于 v1 SKU)部分提到的步骤 1-8,从后端证书导出公钥。

  2. 导出公钥后,打开该文件。

    Open authorization certificate

    about certificate

  3. 转到“证书路径”视图即可查看证书颁发机构。

    cert details

  4. 选择根证书,然后单击“查看证书”。

    cert path

    应该会看到根证书详细信息。

    cert info

  5. 转到“详细信息”视图,然后单击“复制到文件...”。

    copy root cert

  6. 目前,你已从后端证书提取根证书的详细信息。 此时会看到“证书导出向导”。 现在,使用上面的“从后端证书中导出身份验证证书(适用于 v1 SKU)”部分提到的步骤 2-9,导出 Base-64 编码的 X.509(.CER) 格式的受信任根证书。

后续步骤

现已创建采用 Base-64 编码的 X.509(.CER) 格式身份验证证书/受信任的根证书。 可将此证书添加到应用程序网关,以允许对后端服务器进行端到端 TLS 加密。 请参阅使用 PowerShell 通过应用程序网关配置端到端 TLS