问题描述

通过本地生成的自签名证书导入到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中报错的更多相关文章

  1. 【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令Connect-MgGraph -Environment China xxxxxxxxx 遇见登录错误

    问题描述 通过PowerShell 连接到Microsoft Graph 中国区Azure,一直出现AADSTS700016错误, 消息显示 the specific application was ...

  2. 【Azure 环境】在Windows系统中 使用Terraform创建中国区Azure资源步骤(入门级)

    Terraform(全称:Hashicorp Terraform )是一种开源工具,用于预配和管理云基础结构. 它将基础结构编入描述云资源拓扑的配置文件中. 这些资源包括虚拟机.存储帐户和网络接口等. ...

  3. 【Azure Developer - 密钥保管库 】使用 Python Azure SDK 实现从 Azure Key Vault Certificate 中下载证书(PEM文件)

    问题描述 在Azure Key Vault中,我们可以从Azure门户中下载证书PEM文件到本地. 可以通过OpenSSL把PFX文件转换到PEM文件.然后用TXT方式查看内容,操作步骤如下图: Op ...

  4. IIS 使用OpenSSL 生成的自签名证书,然后使用SingalR 客户端访问Https 站点通信

    使用SignalR 的客户端去发送消息给使用 https 部署的站点,官方文档目前并没有详细的教程,所以在此记录下步骤: 使用管理员身份打开cmd 窗口,选择一个整数保存文件夹的地址,切换到对应的文件 ...

  5. 在 Azure 中的 Linux 虚拟机上使用 SSL 证书保护 Web 服务器

    若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Linux 虚 ...

  6. Akka-CQRS(13)- SSL/TLS for gRPC and HTTPS:自签名证书产生和使用

    到现在,我们已经完成了POS平台和前端的网络集成.不过,还是那句话:平台系统的网络安全是至关重要的.前一篇博客里我们尝试实现了gRPC ssl/tls网络连接,但测试时用的证书如何产生始终没有搞清楚. ...

  7. 在 Azure 中的 Windows 虚拟机上使用 SSL 证书保护 IIS Web 服务器

    若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Windows ...

  8. nginx配置https及Android客户端访问自签名证书

    前一篇随笔通过keytool生成keystore并为tomcat配置https,这篇随笔记录如何给nginx配置https.如果nginx已配置https,则tomcat就不需要再配置https了.通 ...

  9. 【Azure Developer】Python代码通过AAD认证访问微软Azure密钥保管库(Azure Key Vault)中机密信息(Secret)

    关键字说明 什么是 Azure Active Directory?Azure Active Directory(Azure AD, AAD) 是 Microsoft 的基于云的标识和访问管理服务,可帮 ...

随机推荐

  1. Python自动化测试之文件操作

    1.读.写.追加文件 读:打开文件  r    读写:r+ 写:w 可写不可读  清空原文件   写读:w+ 清空文件 追加:a+  可以读写,文件不存在自动创建 练习读txt文件类容: #-*- c ...

  2. Excelize 2.4.0 正式版发布, 新增 152 项公式函数支持

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...

  3. Mac系统下Datagrip打不开、点击没反应?

    有没有可能是因为你从网上下载了一些破解软件导致的? 背景 Mac系统下JB公司家的IDEA. Datagrip.PyCharm 或 Goland 打不开点击没反应-- 分析 大概率是之前安装过 汉化插 ...

  4. 前端Long类型丢失精度问题

    有时候后端向前端传输Long类型,数字过长会出现丢失精度的问题 比如后端传来的是这样一个长数字串 那么前端的弹窗显示的是 ![](https://img2022.cnblogs.com/blog/22 ...

  5. 第五十一篇:webpack中的loader(二) --less-loader

    好家伙 先扩充一下知识点: 什么是.less文件? 作为一名前端开发的同学,很多时候我们都无法避免地要去写大量的 CSS 代码, 而且耗费的时间还不少,所以学习一种能够提升开发效率的 CSS 预处理器 ...

  6. Java 9.回文数

    给你一个整数 x ,如果 x 是一个回文整数,返回 true :否则,返回 false .回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数.    例如,121 是回文,而 123 不是. ...

  7. P8539 「Wdoi-2」来自地上的支援 题解

    思路 根据题意,如果每次询问选中的为第 \(x\) 个数,那么前 \(x-1\) 次操作一定不会选中第 \(x\) 个数.(感觉在说废话.) 同样,因为第 \(x\) 个数必须被选中 \(k\) 次, ...

  8. 开源 Web 相册程序: Photoview 和数据可视化生成工具:Datawrapper

    Photoview Photoview是一个开源 Web 相册程序,Go 语言写的,使用 Docker 安装,可以用来快速架设个人相册. github地址:https://github.com/pho ...

  9. 给 SSH 启用二次身份验证

    转载自:https://mp.weixin.qq.com/s/ssuhFbfaHxxzGmLg6Y2MjA 目前来说,二次验证(这里就不做过多解释了)是比较常用的安全手段,通过设置二次验证(谷歌或其他 ...

  10. Elasticsearch集群管理之添加、删除节点

    1.问题抛出 1.1 新增节点问题 我的群集具有黄色运行状况,因为它只有一个节点,因此副本保持未分配状态,我想要添加一个节点,该怎么弄? 1.2 删除节点问题 假设集群中有5个节点,我必须在运行时删除 ...