問題描述
通過本地生成的自簽名證書導入到Azure Key Vault Certificate報錯。
錯誤信息
the specified PEM X.509 certificate content can not be read. Please check if certificate is in valid PEM format. Accepted formats: PEM content or Base64 encoded PEM content.
或是
Private key is not specified in the specified X.509 PEM certificate content. Please specify private key in the X.509 PEM certificate content.
錯誤截圖
問題解答
在錯誤描述中叹放,指出了上傳的PEM證書內容錯誤苹丸,根據官方文檔介紹,PEM所支持的格式為
-----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN PRIVATE KEY----- -----END PRIVATE KEY-----
說明一:
導入證書時限次,需要確保密鑰包含在文件中巧还。 如果你以另一種格式單獨存儲私鑰,則需將該私鑰與證書組合在一起普气。 某些證書頒發(fā)機構 (CA) 提供其他格式的證書。 因此佃延,在導入證書之前现诀,請確保該證書為 PEM 或 PFX 文件格式,并且密鑰使用 Rivest-Shamir-Adleman (RSA) 或橢圓曲線加密 (ECC) 方式的加密履肃。
說明二:
Azure Key Vault 支持 .pem 和 .pfx 證書文件(用于將證書導入到 Key Vault 中)仔沿。 對于 PEM 文件格式,我們支持以下導入類型尺棋。 單個 PEM 編碼的證書封锉,以及一個包含以下內容的 PKCS#8 編碼和解密的密鑰
-----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN PRIVATE KEY----- -----END PRIVATE KEY-----
導入證書時,需要確保該密鑰包含在文件本身中膘螟。 如果讓私鑰單獨采用另一格式成福,則需將私鑰與證書組合在一起。 某些證書頒發(fā)機構提供不同格式的證書荆残,因此在導入證書之前奴艾,請確保證書采用 .pem 或 .pfx 格式。
根據提示内斯,在檢查導入證書的內容中發(fā)現(xiàn)編碼格式不一致蕴潦。一開始使用的Private Key格式為 “ -----BEGIN RSA PRIVATE KEY----- ” ,而不是滿足要求的“ -----BEGIN PRIVATE KEY----- ”俘闯。所以需要對Private Key的文件進行格式轉換潭苞。
第一步:轉換Private Key的格式
openssl pkcs8 -topk8 -inform PEM -in testpkcs1.pem -passin pass:Password@123 -outform pem -nocrypt -out pkcs8.pem
第二步:根據Private Key生成Public Key證書
openssl req -new -x509 -key pkcs8.pem -out certpk8.pem -passin pass:Password@123 -days 3650
第三步:根據Key Vault的要求,合并Public Key 和Private Key
//Linux
cat certpk8.pem pkcs8.pem > importpk8.pem //Windwos
type certpk8.pem pkcs8.pem > importpk8.pem
最后备徐,在Azure Key Vault中導入 importpk8.pem 證書萄传,并輸入正確的密碼甚颂。導入自定義證書成功蜜猾。
附錄一:附上OpenSSL生成 .pfx 證書的指令, 生成的 Local.pfx 可以直接導入Key Vault中
openssl.exe req -x509 -nodes -sha256 -days 3650 -subj "/CN=Local" -newkey rsa:2048 -keyout Local.key -out Local.crt
openssl.exe pkcs12 -export -in Local.crt -inkey Local.key -CSP "Microsoft Enhanced RSA and AES Cryptographic Provider" -out Local.pfx
附錄二:PEM 和 PFX 證書內容的對比
Key Vault Certificate要求上傳PEM的格式為:
-----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN PRIVATE KEY----- -----END PRIVATE KEY-----
參考資料
Azure Key Vault 支持的導入格式 : https://docs.azure.cn/zh-cn/key-vault/certificates/certificate-scenarios#formats-of-import-we-support
How can I resolve a "Bad parameter" error? What are the supported certificate formats for importing to Key Vault? : https://docs.azure.cn/zh-cn/key-vault/certificates/faq#----------------------------key-vault-
當在復雜的環(huán)境中面臨問題,格物之道需:濁而靜之徐清振诬,安以動之徐生蹭睡。 云中,恰是如此!
分類: 【Azure 環(huán)境】