使用自签名证书进行 Azure 服务主体身份验证的风险?

问题描述

我的本​​地脚本在 Azure 中部署资源。 该脚本使用自签名证书进行 Azure 服务主体身份验证。

我在没有证书颁发机构的情况下在 keyvault 中创建了证书。 然后我在脚本服务器上安装了证书。

在这种情况下,使用自签名证书而不是使用证书颁发机构的证书有什么风险?

解决方法

Microsoft 建议仅将自签名证书用于测试目的,仅作为 Azure 服务主体的身份验证方法。

https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal#option-1-upload-a-certificate

https://docs.microsoft.com/en-us/powershell/module/pkiclient/new-selfsignedcertificate?view=windowsserver2019-ps#description

签署证书的正确方法是使用知名的可信第三方,即证书颁发机构 (CA)。 自签名证书有几个关键限制/缺点:

  • 无法撤销自签名证书。
  • 自签名证书永不过期。
  • 需要公钥基础设施 (PKI)。与公钥身份验证相比,这可能会增加某些环境中初始部署的成本。
  • 必须将自签名证书放入使用 Azure 服务主体身份验证的每台计算机的 Trusted Store 中。
  • 自签名证书是凭证,而不是依赖证书颁发机构的信任。

https://www.mcafee.com/blogs/other-blogs/mcafee-labs/self-signed-certificates-secure-so-why-ban/