2019独角兽企业重金招聘Python工程师标准>>>

OpenSSL 转换证书格式

原创 2016-08-30 景峯 Netkiller

工作中我相信你一定会遇到处理数字证书的时候。各种平台,各种语言,它们采用的证书格式与标准都不相同,多多少少存在一些差异。实际上证书仍然是那个证书,只是格式发生了变化。

  1. 公私钥 分开存储

  2. 公私钥合并为一个文件

  3. 有些采用二进制文件

  4. 有些事二进制文件做了BASE64编码

  5. 有些证书做了签名

  6. 有些证书加入了密码

  7. 不同组织有不同的编码。例如微软喜欢使用 x509

下面内容节节选自《Netkiller Cryptography 手札》 接下来几天我们将讨论密钥证书相关话题。

文章出处: http://www.netkiller.cn/cryptography/index.html

7.7. 证书转换

PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过 15 个标准。 常用的有:
PKCS#7 Cryptographic Message Syntax Standard
PKCS#10 Certification Request Standard
PKCS#12 Personal Information Exchange Syntax Standard
X.509是常见通用的证书格式。所有的证书都符合为Public Key Infrastructure (PKI) 制定的 ITU-T X509 国际标准。
PKCS#7 常用的后缀是: .P7B .P7C .SPC
PKCS#12 常用的后缀有: .P12 .PFX
X.509 DER 编码(ASCII)的后缀是: .DER .CER .CRT
X.509 PAM 编码(Base64)的后缀是: .PEM .CER .CRT
.cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。
.pem跟crt/cer的区别是它以Ascii来表示。
pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式
p10是证书请求
p7r是CA对证书请求的回复,只用于导入
p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。

7.7.1. CA证书

用openssl创建CA证书的RSA密钥(PEM格式):

openssl genrsa -des3 -out ca.key 1024

7.7.2. 创建CA证书有效期为一年

用openssl创建CA证书(PEM格式,假如有效期为一年):

openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config openssl.cnf

openssl是可以生成DER格式的CA证书的,最好用IE将PEM格式的CA证书转换成DER格式的CA证书。

7.7.3. x509转换为pfx

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt

7.7.4. PEM格式的ca.key转换为Microsoft可以识别的pvk格式

pvk -in ca.key -out ca.pvk -nocrypt -topvk

7.7.5. PKCS#12 到 PEM 的转换

openssl pkcs12 -nocerts -nodes -in cert.p12 -out private.pem
验证
openssl pkcs12 -clcerts -nokeys -in cert.p12 -out cert.pem

7.7.6. 从 PFX 格式文件中提取私钥格式文件 (.key)

openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key

7.7.7. 转换 pem 到到 spc

openssl crl2pkcs7 -nocrl -certfile venus.pem  -outform DER -out venus.spc

用 -outform -inform 指定 DER 还是 PAM 格式。例如:

openssl x509 -in Cert.pem -inform PEM -out cert.der -outform DER

7.7.8. PEM 到 PKCS#12 的转换

openssl pkcs12 -export -in Cert.pem -out Cert.p12 -inkey key.pem

IIS 证书

cd c:\openssl
set OPENSSL_CONF=openssl.cnf
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt

server.key和server.crt文件是Apache的证书文件,生成的server.pfx用于导入IIS

7.7.9. How to Convert PFX Certificate to PEM Format for SOAP

$ openssl pkcs12 -in test.pfx -out client.pem
Enter Import Password:
MAC verified OK
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

7.7.10. DER文件(.crt .cer .der)转为PEM格式文件

转换DER文件(一般后缀名是.crt .cer .der的文件)到PEM文件
openssl x509 -inform der -in certificate.cer -out certificate.pem
转换PEM文件到DER文件
openssl x509 -outform der -in certificate.pem -out certificate.der

延伸阅读:

数据库安全·保护表

数据库安全·保护表字段

数据库安全·时间一致性

数据库安全·为数据安全而分库

数据库安全·内容版本控制,撰改留痕

数据库安全·用户/角色认证

数据库安全·Token 认证

数据库安全·数据加密

数据库安全·开发加密插件

关注作者公众号,每日推送原创文章。如果已有什么建议,请给我留言。

转载于:https://my.oschina.net/neochen/blog/744087

OpenSSL 转换证书格式相关推荐

  1. openssl公钥格式转换

    RSA公钥 openssl默认生成的RSA公钥为pem格式的,即公钥数据进行der编码再经过BASE64编码再加上头和尾的表示组成的.获取公钥原始数据,需要对秘钥进行base64解码,即可以获得der ...

  2. iOS消息推送整体流程

    具体实现 一.获取推送服务认证书 该认证书 是用于服务器与APNS服务器SSL 连接时的认证,而获取p12的前提是获取APNS Assistant. 1. 在apple开发中心生成 App ID(如P ...

  3. Burpsuite+夜神模拟器对app抓包(安卓7及其以上)

    前言: 夜神模拟器安卓7以上直接安装证书,是无法成功抓取app的https数据包的,因为安卓7默认不再信任用户安装的证书,此时就需要使用adb将证书导入系统进行安装,下面以夜神安卓9为例. 一.ope ...

  4. 移动安全:多方法实现Android导入系统证书并用Burp抓包

    文章目录 0x0需求 1x0 环境准备 2x0 导入系统证书 2x1 方法一:Android访问代理 2x2 方法二:adb推入证书 3x0 抓包测试 总结 0x0需求 一般来说在Android7以上 ...

  5. Loadrunner 测试https请求配置

    问题: 在测试https请求的时候发现无法通过,并且报错 Action.c(31): Error -27780: [GENERAL_MSG_CAT_SSL_ERROR]connect to host ...

  6. 证书格式pfx和cer的区别及转换

    作为文件形式存在的证书一般有这几种格式: 1.带有私钥的证书 由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形 ...

  7. Openssl证书管理

    目录 [隐藏] 1 已整理部分 1.1 为CA创建一个RSA私钥 1.2 python编程实现Demon 1.3 为客户创建一个RSA私钥,并使用CA证书来对其签署 1.4 撤销一个客户证书 1.5  ...

  8. openssl x509 证书命令

    openssl x509命令具以下的一些功能,例如输出证书信息,签署证书请求文件.生成自签名证书.转换证书格式等. openssl x509工具不会使用openssl配置文件中的设定,而是完全需要自行 ...

  9. [SSL证书].pfx格式和.Cer格式的区别以及格式互相转换

    现在很多网站都是用了ssl加密的https访问,而且现在网站不使用cdn的话简直是裸奔,但是目前用户最多的360网站卫士和腾讯云提供的免费配置ssl证书支持https访问功能都采取不一样格式的ssl证 ...

最新文章

  1. [转]CSS hack大全详解
  2. css3 动画 火箭,CSS3 火箭发射动画 寓意创新起航
  3. 回滚master代码_Git之master主干代码回滚
  4. spring核心配置文件引入外部properties文件和另外的xml配置文件
  5. 【渝粤教育】 国家开放大学2020年春季 1068小企业管理 参考试题
  6. 语言认知偏差_我们的认知偏差正在破坏患者的结果数据
  7. zabbix加vm虚拟服务器,zabbix监控vmware exsi主机的图文步骤
  8. go语言编程项目_一个项目需要多少种编程语言?
  9. matlab字体设置
  10. GDAL库进度信息编写示例
  11. 人脸方向学习(八):Face Recognition-MobileFaceNets解读
  12. 如何下载jdk源码进行阅读
  13. 墙后的全部姿势,全被“瞎眼”AI透视
  14. 阿里巴巴高效的页面动画解决方案——Ant Motion Design
  15. contiki学习笔记 etimer部分
  16. 历经艰辛,新买的kingmax 8G超棒(SM325)量产成功,速度飙升一倍
  17. 失联8分钟后现神秘“第7次握手” 澳两次发现疑似黑匣子信号 搜救区域最深5000米
  18. 为什么打不开jar文件?
  19. Mybatis-plus的分页查询
  20. Python3一行代码实现图片文字识别

热门文章

  1. 点击屏幕上EditText区域以外的任何地方隐藏键盘的解决方法
  2. 《高效程序员的45个习惯》读后感
  3. 全球只有4个人通关的游戏!不过如此
  4. linux获取后台进程的控制台数据
  5. IoT数据分析可能需要混合方法
  6. android之descendantFocusability用法简析
  7. Windows 10或成为最后一个Windows版本
  8. 概率论02 概率公理
  9. Android特色开发之Google MAP
  10. Jquery UI dialog 详解 (中文)