Azure Key Vault中为何要使用带不可导出密钥的证书?
不可导出私钥的证书核心价值在于私钥全程托管在Key Vault内,永远不会泄露到外部环境,并非毫无用处,以下是几个主流实用场景:
Azure托管服务的SSL/TLS终止
应用网关、Azure Front Door、CDN这类服务支持直接与Key Vault集成,配置HTTPS服务时无需导出证书私钥。服务会直接调用Key Vault中的证书处理SSL握手和加密流程,私钥始终留在Vault中,避免了将PFX文件部署到服务实例带来的泄露风险。双向TLS身份验证(服务间/客户端-服务)
在Azure生态的服务间通信(比如App Service与API Management)或者客户端与服务的双向TLS场景中,不可导出私钥的证书可作为服务端的身份凭证。服务直接通过Key Vault调用证书完成身份验证,无需将私钥导出到服务实例,大幅提升通信安全性。安全的代码签名与文档签名
借助Key Vault的签名API(如az keyvault certificate sign命令或对应SDK),可直接使用证书的私钥完成代码、文档或安装包的签名操作,私钥全程不会离开Key Vault。这种方式适配CI/CD流水线,避免构建服务器接触到私钥,从根源上防止私钥泄露。托管式加密/签名操作
虽然不能导出私钥,但你可以通过Key Vault的密钥操作API,用证书对应的私钥执行解密、JWT签名、数据签名等操作。所有加密逻辑在Key Vault内部完成,私钥永不暴露,适合处理敏感数据的加密场景。物联网设备身份验证
在IoT场景中,设备仅需持有证书的公钥部分用于身份标识,私钥留在Key Vault中。云端服务(如IoT Hub)可调用Key Vault中的证书私钥验证设备的签名请求,或进行加密通信,避免设备被攻破后私钥泄露的风险。
内容的提问来源于stack exchange,提问作者Emperor Eto

