IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 证书格式转换、生成 -> 正文阅读

[网络协议]证书格式转换、生成

一. 概念介绍
DER、CRT、CER、PEM都是基于X.509证书,其核心是根据RFC 5280编码或数字签名的数字文档。其中PEM和DE为基本格式。
DER扩展用于二进制DER编码证书,主要有三类.crt /.cer/.der 。.PEM扩展用于不同类型的X.509v3文件,是以“ - BEGIN …”前缀的ASCII(Base64)数据。.CRT 和CER为扩展编码格式。
CER和CRT扩展几乎是同义词。都是用于证书扩展的,它可以被编码为二进制DER或ASCII PEM。KEY扩展名用于公钥和私钥PKCS
二.转换证书格式
将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(导出证书)
将包含私钥和证书的PKCS#12文件(.pfx .p12)转换为PEM
openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
将PEM证书文件和私钥转换为PKCS#12(.pfx .p12)
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
将PEM转换为CRT(.CRT文件)
openssl x509 -outform der -in certificate.pem -out certificate.crt
将PEM转换为DER
openssl x509 -outform der -in certificate.pem -out certificate.der
将PEM转换为P7B
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
将PEM转换为PFX
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
将DER转换为PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
将P7B转换为PEM
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
将P7B转换为PFX
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
将PFX转换为PEM
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

三.私钥提取公钥
? ? openssl genrsa -out private.pem 1024
? ? 这将创建一个名为private.pem的密钥文件,该文件使用1024位(bits)。该文件实际上同时具有私钥和公钥,可以从该文件中提取公共密钥:
openssl rsa -in private.pem -out public.pem -outform PEM -pubout
?? ?or
openssl rsa -in private.pem -pubout > public.pem
?? ?or
openssl rsa -in private.pem -pubout -out public.pem

现在你的public.pem只包含公钥,可以和第三方自由地分享。可以通过使用公钥加密自己的东西然后使用私钥进行解密来测试,首先我们需要一些数据做加密:

示例文件:
echo ‘too many secrets’ > file.txt
现在在file.txt中有一些数据,可以使用OpenSSL和公钥进行加密:
openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
这将创建一个加密版本的file.txt,命令这个文件为file.ssl(如果直接打开这个文件查看那么它看起来只是二进制垃圾,人类无法看懂)。然后可以使用私钥解密它:
openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt

四.创建密钥
windows创建密钥,需要两个东西,一个是jdk,一个是openssl
1,生成JKS格式密钥库,含自签名证书:
keytool -genkey -v -alias lansoft -keyalg RSA -storetype JKS -keystore lansoft.jks -dname “CN=192.168.1.102, OU=lijian, O=lansoft, L=CN, S=CN, C=CN” -storepass XXXX -keypass XXXX -validity 3650
-genkey 生成秘钥
-alias 别名
-keyalg 秘钥算法
-keysize 秘钥长度
-validity 有效期
-keystore 生成秘钥库的存储路径和名称
-keypass 秘钥口令
-storepass 秘钥库口令
-dname 拥有者信息,CN:姓名;OU:组织单位名称;O:组织名称;L:省/市/自治区名称;C:国家/地区代码

2,把JKS格式的密钥库转为PKCS12格式的密钥库:
keytool -importkeystore -srckeystore lansoft.jks -destkeystore lansoft.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass XXXX -deststorepass XXXX -srcalias lansoft -destalias lansoft -srckeypass XXXX -destkeypassXXXX -noprompt
查看:keytool -list -v -keystore lansoft.p12

3,导出二进制cer证书:
keytool -export -alias lansoft -keystore lansoft.p12 -storepass XXXX* -file lansoft.cer
keytool -export -alias lansoft -keystore lansoft.p12 -storepass “XXXX” -rfc -file lansoft1.cer
查看:keytool -printcert -v -file lansoft1.cer

4,openssl生成文本格式私钥,无密码:
openssl pkcs12 -in lansoft.p12 -nocerts -nodes -out lansoft.key -passin pass:XXXX 私钥

5,openssl生成文本格式证书:
openssl x509 -inform der -in lansoft.cer -out lansoft.crt 公钥
openssl x509 -in lansfot.crt -out lansoft.pem -outform PE
?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 12:07:35  更:2022-02-26 12:11:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:48:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码