azure - 使用 Java 从 Azure Function 访问 Key Vault 证书
问题描述
我在 Java 中有一个 Azure 函数。使用托管标识和密钥保管库参考,我在函数应用中添加了一个配置来访问密钥保管库机密和证书。正确引用了秘密,我可以在 Azure 函数中访问它的值。
从 Azure Key Vault 访问证书时,使用 System.getenv(,我得到一个编码的字符串。如何将该字符串转换为 pfx 或 pem 格式的有效证书。
有没有其他方法可以使用 Java 作为运行时语言从 Azure 函数中的 Azure Key Vault 安全访问证书。
解决方案
根据我们在评论部分的讨论,要将 base 64 字符串转换为 pfx 或 pem 格式的有效证书,请使用以下代码:
byte[] encodedCert = Base64.getDecoder().decode(certB64.replaceAll(X509Factory.BEGIN_CERT, "").replaceAll(X509Factory.END_CERT, ""));
ByteArrayInputStream inputStream = new ByteArrayInputStream(encodedCert);
X509Certificate cert = null;
try {
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
cert = (X509Certificate) certFactory.generateCertificate(inputStream);
}
catch (CertificateException e) {
e.printStackTrace();
}
您可以参考此内容从 keyvault 检索证书:https ://github.com/Azure/azure-sdk-for-java/tree/main/sdk/keyvault/azure-security-keyvault-certificates#retrieve-a-certificate
推荐阅读
- asp.net-core - 在 Identity Server 4 中使用 AddSigningCredential(cert)
- android - 为什么 adb remount 失败?
- android - 使用 gson 将文档添加到 Firestore 时间戳问题
- java - 迁移后 IntelliJ 无法加载 JUnit5
- reactjs - SPFx 在 Web 部件上动态播放 HTML5 视频
- php - Laminas - 无法呈现模板“xxxxxxx”解析器无法解析为文件
- ruby-on-rails - 如何找出模型的所有关联?
- javascript - 当屏幕宽度小于 810px 时,如何删除 relax 类?
- c# - Visual Studio 中数字 Excel 的 NumberFormat 问题
- bash - 仅列出文件夹中的某些文件