我做了一个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格式)
$base64Value是整个证书的base64编码(der格式)
生成证书
$ 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
$ python -c "import uuid; print(uuid.uuid4())"
我检查与PowerShell生成的结果,也有相同的
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。