当前位置: 首页 > 知识库问答 >
问题:

从azure key vault证书中分离私钥和证书

文国发
2023-03-14

使用Azure Key Vault Secret client library for Python,我获得了证书的秘密,它有一个提取的私钥。

-----BEGIN PRIVATE KEY

{private_key_value}

-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----

{certificate_value}

-----END CERTIFICATE-----

共有1个答案

曹疏珂
2023-03-14

如果您的证书的内容类型是PEM,并且您获得了带有证书名称的秘密的.value,那么您应该获得一个PEM编码的字符串,如您所描述的。现在有一个Azure-keyvault-certifications的示例,显示了如何使用pyOpenSSL从证书中获取私钥,但是如果您想解析字符串,可以执行如下操作:

from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient

credential = DefaultAzureCredential()
client = SecretClient("https://{vault-name}.vault.azure.net", credential)
secret = client.get_secret("cert-name")

def get_section_from_pem(pem_string, section):
    header = "-----BEGIN {}-----".format(section)
    footer = "-----END {}-----".format(section)
    header_start = pem_string.index(header)
    footer_start = pem_string.index(footer)
    content = pem_string[header_start + len(header) : footer_start]
    return content

private_key = get_section_from_pem(secret.value, "PRIVATE KEY")
certificate = get_section_from_pem(secret.value, "CERTIFICATE")

print("Private key: {}\nCertificate: {}".format(private_key, certificate))

(我使用Python开发Azure SDK)

 类似资料:
  • 因此,我正在通过 SAML2.0 为我们的应用程序实现 SSO。我们正在使用 saml2-js,并且我们正在执行 SP 启动的 SSO。 实现已经准备好了,它正在工作,但是有几个部分我还在纠结。 saml2-js要求您在ServiceProvider实例上提供私钥和证书-

  • 我是新来配置Jetty服务器的SSL。我按照digcert的步骤创建了私钥文件、证书请求CSR文件。 我向CA发送了证书请求,并拿回了我签名的CSR。但是CA给我发了一个有两个证书的捆绑包,一个是我的证书,由CA签名,第二个是CA证书。(1star_xyx_abc_comcrt文件,2.CRT文件)。现在我面临着从这些文件创建密钥库的麻烦。 当我按照Oracle文档的步骤4、5和6使用keytoo

  • 我试图签署一个Android应用程序,但显然原始的keystore文件是不可用的。我所得到的只有以下几点: 私钥md5 0123456789abcdef0123456789abcdef<--虚构值,但 证书md5 fedcba9876543210fedcba9876543210<-原始为32个十六进制数字 已签署的生产Android应用程序 是否有任何方法可以从这些资产中重新创建一个keystor

  • 问题内容: 我正在寻找一个Java库或代码来即时生成证书,公共和私有密钥,而无需使用第三方程序(例如openssl)。 我认为是从Java代码中获取keytool + openssl的东西。 考虑使用ssl和客户端身份验证保护的基于Java servlet的Web应用程序。我希望Servlet容器仅在请求时使用Java代码生成客户端证书(例如pkcs12格式)。 问题答案: 您可以使用一对或密钥在

  • 我必须使用Akka HTTP编程微服务。[完成] 服务必须在docker容器内运行。[完成] 与此服务的通信(通过REST API[完成])已经通过HTTPS。[TODO] 在尝试从Web浏览器发出HTTPS GET请求时: 浏览器警告连接不安全 在尝试向服务器上的服务发出cURL请求时: docker ps 港口 0.0.0.0:443- Curl-vhttps://localhost TCP_

  • 但是,这将错误地表示它无法加载证书。