微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

parsingkeyid的证书 – Python

我做了一个Googlesearch,但没有find任何帮助我的东西。我试图在Microsoft Azurevalidation我的app ,所以我创build了一些自签名certificates 。 他们给出了一个关于如何parsingcrt的教程,然而它在PowerShell 。 我只使用Ubuntu / OS X 代码如下:

$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $cer.Import("mycer.cer") $bin = $cer.GetRawCertData() $base64Value = [System.Convert]::ToBase64String($bin) $bin = $cer.GetCertHash() $base64Thumbprint = [System.Convert]::ToBase64String($bin) $keyid = [System.Guid]::NewGuid().ToString()

我将如何去在Python编写相同的代码我有.crt , .key , .csr , .pass.key和pkcs8_key文件

更新:

我想从证书中提取keyId和customKeyIdentifier 。

wasabi阻止Azure缩放收集数据的频率如何?

是否应该专门创build一个新的存储帐户来存储Azure诊断数据?

如何从IIS迁移到Azure

我可以在Azure上使用%PUBLIC%和其他“特殊”文件夹吗?

从VS服务器浏览器访问Azure存储

试图ping linux vm托pipe在azure色不起作用

天青本地存储模拟器发出400个错误的请求

Azure本地磁盘 – 它去了哪里? (Linux VM)

在云上生成唯一的ID

Windows Azure – 无法创buildangular色入口点

@philippe,

根据你的描述,如果你想使用python获取证书信息,请参考这个简单的代码。 我使用.cer作为测试文件

import OpenSSL.crypto f=open("tested.cer","rb") der = f.read() x509=OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1,der) print("serial number",x509.get_serial_number()); print("Issue Name",x509.get_issuer()); print("subject_name_hash",x509.subject_name_hash()); idif=x509.get_extension(0) print("extension",x509.get_extension(0)) print("id",idif.get_data(),idif.get_short_name()) print("get_subject",x509.get_subject()); pkey = x509.get_pubkey() print("Public Key ",pkey) listdir=dir(pkey) print(listdir) print(pkey.bits()) print(pkey.type()) print(pkey._pkey)

同时,如果你想获得一个证书信息keyId和customKeyIdentifier ,我建议你参考证书的这些属性和这个样本的定义 。 您可以在该页面上找到相应的属性。 通过这些属性,您可以获得您的证书及其extension信息。 而且你也可以参考这个API文件。 如果我误解了,请随时告诉我。

您不需要Python或PowerShell解析Microsoft Azure的证书。

该文档描述了需要的3个属性

"keyCredentials": [ { "customKeyIdentifier": "$base64Thumbprint_from_above","keyId": "$keyid_from_above","type": "asymmetricX509Cert","usage": "Verify","value": "$base64Value_from_above" }],

$base64Thumbprint是证书的sha1散列的base64编码(der格式)

$keyid只是一个随机的guuid

$base64Value是整个证书的base64编码(der格式)

生成证书

生成一个自签名证书( x509与rsa 2048)

$ openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

计算base64指纹

$ openssl x509 -outform der -in certificate.crt | openssl dgst -binary -sha1 | openssl base64

计算base64

$ openssl x509 -outform der -in certificate.crt | openssl base64 -A

生成一个随机的uuid

$ python -c "import uuid; print(uuid.uuid4())"

我检查与PowerShell生成的结果,也有相同的

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐