使用 OpenSSL 实现私钥和证书的转换

近期在项目中iOS需要用到APNs的推送,而公司的iOS女同事(纯哥)只给了我2个p12格式的文件。突然发现,证书的转换问题还是比较常见的,比如之前支付开发。而在程序中,实际需要使用的是pem格式的证书,因此这里涉及到证书之间的转换问题。

由于私钥和证书可以以不同格式的存储,这意味着我们需要对它们进行转换(腾云科技TY300.COM)。而大多数常用的格式如下,首先是证书的格式:

二进制的DER证书,包含X.509证书为原始格式,使用DER ASN.1编码。
ASCII的PEM证书,包含1个base64编码的DER证书,以-----BEGIN CERTIFICATE-----开头而以-----END CERTIFICATE-----结束。
PKCS#7证书,1个复杂格式的设计用于传输签名或加密数据,定义在RFC 2315中。通常以.p7b和.p7c作为后缀且可以包含整个证书链。这种格式被Java的keytool工具支持。
PKCS#12(PFX)的证书和私钥,1个复杂的格式它可以存储和保护1个服务器的私钥并和1个完整的证书链一起。它通常以.p12和.pfx为后缀。这种格式常用于微软的产品,不过也可以用于客户端证书。
然后是对应的私钥的格式:

二进制的DER私钥,包含1个私钥以原始形式,使用DER ASN.1编码。OpenSSL(基础教程qkxue.net)以它传统的SSLeay格式创建私钥,不过也可以使用另外1种称为PKCS#8,但不广泛使用的格式(定义在RFC 5208)。在OpenSSL中可以使用pkcs8命令来进行PKCS#8格式的处理操作。
ASCII格式的私钥,包含1个base64编码的DER私钥,有些时候有一些额外的元信息,例如密码保护采用的算法。
说了这么多,可以发现对于私钥之间的转换就简单的很多,只能在DER和PEM格式之间进行转换。而相比证书之间的转换,就稍微复杂一些。

时间: 2024-12-05 08:45:00

使用 OpenSSL 实现私钥和证书的转换的相关文章

openssl 生成私钥、申请文件,证书导入jks说明

openssl 生成私钥.申请文件,证书导入说明 1.生成私钥 openssl genrsa -out serverkey.key 1024/2048 这样生成的私钥不带密码(以后生成密钥库后,要将密码改成和密钥库密码相同) openssl genrsa -des3 -out serverkey.key 1024/2048    这样生成的带密码(密码必须和以后生成的密钥库密码相同) 2.生成申请文件 openssl req -new -key serverkey.key -out cert.c

openssl将私钥和crt证书合成pfx证书

在IIS配置ssl的时候,安装服务器证书,发现安装后,刷新下证书就消失了,在编辑绑定的时候,可选证书中也没有安装的证书. 原因是我的证书文件的证书申请并不是在我的服务器上申请的,因此只安装crt证书会出现这种情况. 解决此问题的办法是利用openssl将私钥和服务器crt证书合成.pfx证书,然后在IIS中导入该pfx证书即可. 步骤 下载安装openssl 这里我们直接使用安装包进行安装(也可自己编译),选择对应版本进行下载下载. 运行安装程序Win64OpenSSL-1_0_2e.exe,将

使用OpenSSL生成私钥 Private Key 以及根据Private Key创建证书

公钥和私钥通常是成对出现的,有了公钥那就存在对应的私钥,通常OpenSSL,公钥是很容易从私钥中得到的,因而我们要创建证书,那我们首先要做的就是创建私钥. 1.使用OpenSSL生成私钥常用的生成算法有RSA及DSA,RSA生成的私钥可以用来加密以及签名,而DSA生成的私钥只可以用来签名 1.1).RSA算法生成key的示例 openssl genrsa -des3 -out privkey.pem 2048 genrsa:指定了生成了算法使用RSA-desc:表示生成的key是有密码保护的(注

常用的证书格式转换

1.从pfx格式的证书提取出密钥和证书set OPENSSL_CONF=openssl.cnfopenssl pkcs12 -in my.pfx -nodes -out server.pemopenssl rsa -in server.pem -out server.key openssl x509 -in server.pem -out server.crtPEM格式的证书与DER格式的证书的转换openssl x509 -in cert.pem -inform PEM -out cert.d

Cer Crt Pem Pfx 证书格式转换

1.从pfx格式的证书提取出密钥和证书set OPENSSL_CONF=openssl.cnfopenssl pkcs12 -in my.pfx -nodes -out server.pemopenssl rsa -in server.pem -out server.key openssl x509 -in server.pem -out server.crtPEM格式的证书与DER格式的证书的转换openssl x509 -in cert.pem -inform PEM -out cert.d

2020_1课程设计—基于BC的证书格式转换工具的设计与实现—Week1

2020_1课程设计-基于BC的证书格式转换工具的设计与实现-Week1 目录 2020_1课程设计-基于BC的证书格式转换工具的设计与实现-Week1 任务要求 Week1 任务安排 实践过程 学习证书格式的相关知识 学习OpenSSL的使用方法 安装OpenSSL 使用OpenSSL查看证书,并实现证书格式转换 创建根证书CA 颁发证书 证书格式转换 遇到问题 参考链接 任务要求 清楚.pem .pfx /.keystore .crt .cer .der 这些格式的文件用openssl如何产

OpenSSL - 数据加密和数字证书

功能应用: 消息摘要,给文件或数据生成消息摘要,消息摘要只能校验数据的完整性,如SHA.MD5 数据加密和解密:对数据进行加密解密,OpenSSL实现了所有加密算法 数字证书:可以通过命令行或代码生成证书,证书内包含了公钥 数字签名:利用加密算法对数据进行签名,验证数据来源可靠性,如RSA 随机数字:产生可靠的随机数 加密算法: HASH算法:SHA.MD5等,不可逆加密,用于校验数据的完整性. 对称加密算法:DES.3DES.DESX等,双方使用相同的密钥进行加密解密. 非对称算法:RSA.E

利用CA私钥和证书创建中间CA

本文借助实验环境下创建的root CA私钥和证书进一步创建中间CA.为了便于区分,我们将创建中间CA(intermediate CA)的CA称为根CA(root CA). 关于如何使用OpenSSL创建root CA请参考本文. 中间CA是root CA的代理,其证书由root CA签发,同时中间CA能够代表根CA签发用户证书,由此建立起信任链. 创建中间CA的好处是即使中间CA的私钥泄露,造成的影响也是可控的,我们只需要使用root CA撤销对应中间CA的证书即可.此外root CA的私钥可以

使用openssl创建自签名证书及部署到IIS教程

概要 本文讲解三个部分:1. 创建自签名证书2. 创建自己的证书颁发机构3. 以及如何配置IIS 创建自签名证书 首先,创建一个私钥文件: openssl genrsa -out myselfsigned.key 2048 然后利用私钥创建自签名证书: openssl req -new -x509 -key myselfsigned.key -out myselfsigned.cer -days 36500 执行上面的两个操作之后会提示输入以下几个内容(为了显示正常尽量使用英文): Countr