Данные pem_data, которые вы получаете из хранилища ключей, уже имеют формат pem, и вы можете получить только открытый ключ.
pem_data = client.get_secret("https://XX.vault.azure.net/", "XX", "XX")
pem_data = pem_data.value.encode()
cert = load_pem_x509_certificate(pem_data, backend=default_backend())
public_key = cert.public_key()
Если вы хотите получить закрытый ключ, вы можете использовать OpenSSL:
import OpenSSL.crypto
pem_data = client.get_secret("https://XX.vault.azure.net/", "XX", "XX")
pem_data = pem_data.value.encode()
crtObj = crypto.load_certificate(crypto.FILETYPE_PEM, pem_data)
pubKeyObject = crtObj.get_pubkey()
priKeyString = crypto.dump_privatekey(crypto.FILETYPE_PEM, pubKeyObject)
print(priKeyString)
Примечание:
Убедитесь, что вы указали, что ключ экспортируется при создании сертификата. Если политика указывает на невозможность экспорта, то закрытый ключ не является частью значения при извлечении в качестве секрета. Подробнее см. в этом документе .