管理证书

已完成

安全地管理证书对于每个组织都是一个挑战。 必须确保私钥安全。 如 PetDash 的 Steve 所发现的那样,证书存在有效日期,必须定期续订,以确保你的网站流量安全。

将证书添加到密钥保管库

Azure Key Vault 管理来自多个来源的基于 X.509 的证书。

首先,你可以直接在 Azure 门户中创建自签名证书。 此过程将创建一个公钥/私钥对,并使用其自己的密钥对证书进行签名。 这些证书可用于测试和开发。

其次,你可以创建 X.509 证书签名请求 (CSR)。 此过程将在 Key Vault 中创建一个公钥/私钥对以及可以传递给证书颁发机构 (CA) 的 CSR。 然后可以将签名的 X.509 证书与保留的密钥对合并,以在 Key Vault 中完成证书,如下图所示。

该图显示了使用你自己的证书颁发机构创建证书的过程。

  1. 在上图中,通过在 Azure Key Vault 中创建密钥,应用程序可从内部开始创建证书。
  2. Key Vault 将证书签名请求 (CSR) 返回给应用程序。
  3. 应用程序将 CSR 传递给所选 CA。
  4. 所选 CA 以 X.509 证书进行响应。
  5. 应用程序通过合并 CA 中的 X.509 证书来完成新证书创建过程。

此方法适用于任何证书颁发者,并且提供了比直接处理 CSR 更好的安全性。 该过程更安全,因为私钥是在 Azure Key Vault 中创建和保护的,永远不会泄露。

第三,可以将 Key Vault 与受信任的证书颁发者(称为集成 CA)连接,然后直接在 Azure Key Vault 中创建证书。 此方法需要一次性设置以连接证书颁发机构。 然后,可以请求创建证书,Key Vault 直接与 CA 交互,以在与前面所示的手动 CSR 创建过程类似的过程中完成请求。 下图显示了此过程的完整详细信息。

该图显示了使用集成证书颁发机构创建证书的过程。

  1. 在上图中,通过在 Key Vault 中创建密钥,应用程序可从内部开始创建证书。
  2. Key Vault 将 SSL 证书请求发送到 CA。
  3. 应用程序在循环和等待过程中轮询 Key Vault 以完成证书。 当 Key Vault 收到包含 x509 证书的 CA 响应时,证书创建完成。
  4. CA 用 X509 SSL 证书响应 Key Vault 的 SSL 证书请求。
  5. 与 CA 的 X509 证书合并以后,新证书的创建过程即告完成。

这种方法具有几个明显的优点。 因为 Key Vault 已连接到发证 CA,所以它可以管理和监视证书的生命周期。 这意味着它可以自动续订证书、通知你到期时间,并监视事件(例如证书是否已吊销)。

最后,你可以导入现有证书 - 通过导入,可将证书添加到已使用的 Key Vault 中。 导入的证书可以是 PFX 或 PEM 格式,并且必须包含私钥。 例如,以下是用于上传证书的 PowerShell 脚本:

$pfxFilePath = "C:\WebsitePrivateCertificate.pfx"
$pwd = "password-goes-here"
$flag = [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable
$pkcs12ContentType = [System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12

$collection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection  
$collection.Import($pfxFilePath, $pwd, $flag)

$clearBytes = $collection.Export($pkcs12ContentType)
$fileContentEncoded = [System.Convert]::ToBase64String($clearBytes)
$secret = ConvertTo-SecureString -String $fileContentEncoded -AsPlainText –Force
$secretContentType = 'application/x-pkcs12'

# Replace the following <vault-name> and <key-name>.
Set-AzKeyVaultSecret -VaultName <vault-name> -Name <key-name> -SecretValue $secret -ContentType $secretContentType

从密钥保管库中检索证书

在 Azure Key Vault 中存储证书后,可以使用 Azure 门户浏览证书属性,并启用或禁用证书以使其对客户端不可用。

显示 Azure 门户中的证书属性的屏幕截图。

Azure 应用服务集成

在 Azure Key Vault 中创建公钥/私钥对证书后,即可通过 Azure 门户轻松将其与 Web 应用关联。

  1. 在“设置”下选择“TLS/SSL 设置”。

  2. 选择“私钥证书 (.pfx)”选项卡。

  3. 选择“导入密钥保管库证书”,如以下屏幕截图所示。

    可以将 Key Vault 证书加载到 Azure 应用服务 Web 应用的 Azure 门户的屏幕截图。

  4. 然后可以选择保管库(必须在相同的订阅中)和包含证书的机密。

    • 此证书必须是内容类型为 application/x-pkcs12 且不能有密码的 X.509 证书。

最后,一旦证书就绪,需要设置一个自定义域。 *.azurewebsites.net 已有内置证书。 然后可将自定义域与已分配的证书相关联,以便服务器使用该证书来保护与浏览器的连接。