【Azure 环境】把OpenSSL生产的自签名证书导入到Azure Key Vault Certificate中报错
问题描述
通过本地生成的自签名证书导入到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-----
说明一:
导入证书时,需要确保密钥包含在文件中。 如果你以另一种格式单独存储私钥,则需将该私钥与证书组合在一起。 某些证书颁发机构 (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-----
导入证书时,需要确保该密钥包含在文件本身中。 如果让私钥单独采用另一格式,则需将私钥与证书组合在一起。 某些证书颁发机构提供不同格式的证书,因此在导入证书之前,请确保证书采用 .pem 或 .pfx 格式。
根据提示,在检查导入证书的内容中发现编码格式不一致。一开始使用的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-
【Azure 环境】把OpenSSL生产的自签名证书导入到Azure Key Vault Certificate中报错的更多相关文章
- 【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令Connect-MgGraph -Environment China xxxxxxxxx 遇见登录错误
问题描述 通过PowerShell 连接到Microsoft Graph 中国区Azure,一直出现AADSTS700016错误, 消息显示 the specific application was ...
- 【Azure 环境】在Windows系统中 使用Terraform创建中国区Azure资源步骤(入门级)
Terraform(全称:Hashicorp Terraform )是一种开源工具,用于预配和管理云基础结构. 它将基础结构编入描述云资源拓扑的配置文件中. 这些资源包括虚拟机.存储帐户和网络接口等. ...
- 【Azure Developer - 密钥保管库 】使用 Python Azure SDK 实现从 Azure Key Vault Certificate 中下载证书(PEM文件)
问题描述 在Azure Key Vault中,我们可以从Azure门户中下载证书PEM文件到本地. 可以通过OpenSSL把PFX文件转换到PEM文件.然后用TXT方式查看内容,操作步骤如下图: Op ...
- IIS 使用OpenSSL 生成的自签名证书,然后使用SingalR 客户端访问Https 站点通信
使用SignalR 的客户端去发送消息给使用 https 部署的站点,官方文档目前并没有详细的教程,所以在此记录下步骤: 使用管理员身份打开cmd 窗口,选择一个整数保存文件夹的地址,切换到对应的文件 ...
- 在 Azure 中的 Linux 虚拟机上使用 SSL 证书保护 Web 服务器
若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Linux 虚 ...
- Akka-CQRS(13)- SSL/TLS for gRPC and HTTPS:自签名证书产生和使用
到现在,我们已经完成了POS平台和前端的网络集成.不过,还是那句话:平台系统的网络安全是至关重要的.前一篇博客里我们尝试实现了gRPC ssl/tls网络连接,但测试时用的证书如何产生始终没有搞清楚. ...
- 在 Azure 中的 Windows 虚拟机上使用 SSL 证书保护 IIS Web 服务器
若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Windows ...
- nginx配置https及Android客户端访问自签名证书
前一篇随笔通过keytool生成keystore并为tomcat配置https,这篇随笔记录如何给nginx配置https.如果nginx已配置https,则tomcat就不需要再配置https了.通 ...
- 【Azure Developer】Python代码通过AAD认证访问微软Azure密钥保管库(Azure Key Vault)中机密信息(Secret)
关键字说明 什么是 Azure Active Directory?Azure Active Directory(Azure AD, AAD) 是 Microsoft 的基于云的标识和访问管理服务,可帮 ...
随机推荐
- 来瞧瞧,WPF 炫酷走马灯!
来瞧瞧,WPF 炫酷走马灯! 控件名:SpotLight 作者:WPFDevelopersOrg 原文链接: https://github.com/WPFDevelopersOrg/WPFDevelo ...
- CSP2021-S游记
前言 年纪大了,脑子乱了,渐渐被低年级吊打了. 大家这么内卷下去,高年级的普遍后悔自己生早了,低年级永远占优势,不只是机会优势,还有能力优势. 快进到改变基因出生国家队算了-- Day0 非常不幸地被 ...
- 【JDBC】学习路径7-转账-commit事务操作
现在我们要做一个转账系统. 第一章:创建一张新的表格(用户银行账户表格) 在之前的JDBC_01数据库中新增一个表格,名字为:Account 其中,有id.银行卡号.银行密码.账户余额. 创建表格 ...
- 使用man手册查看内核函数
1.为避免man的一些功能缺失,先装好manpages-dev sudo apt-get install manpages-dev 2.安装mandocs的依赖包xmlto sudo apt-get ...
- Elasticsearch: rollover API
rollover使您可以根据索引大小,文档数或使用期限自动过渡到新索引. 当rollover触发后,将创建新索引,写别名(write alias)将更新为指向新索引,所有后续更新都将写入新索引. 对于 ...
- 配置Kubelet的垃圾回收
文章转载自:https://www.kuboard.cn/learning/k8s-advanced/gc.html Kubelet的垃圾回收功能可以清理不再使用的容器和镜像,kubelet对容器进行 ...
- logstash知识点
Logstash是位于Data和Elasticsearch之间的一个中间件.Logstash是一个功能强大的工具,可与各种部署集成. 它提供了大量插件. 它从数据源实时地把数据进行采集,可帮助您解析, ...
- fastdfs-zyc管理FastDFS的web界面
俩压缩包根据大小重命名以下,按图片所示 把1_fastdfs-zyc.7z重命名为fastdfs-zyc.7z.001 把2_fastdfs-zyc.7z重命名为fastdfs-zyc.7z.002 ...
- Solutions:Elastic workplace 搜索:随时随地搜索所有内容 (二)
- vue-router query和params 传参和接收参数
1.params 方式传递和接收参数 //传参 this.$router.push({ name: 'checkDetailInfo', params:{ fkdNum:fkdNum, jyayStr ...