使用openssl生成证书、cer文件、key公私钥、pfx证书、pem公私钥_openssl生成cer证书-程序员宅基地

技术标签: rsa  openssl  pem  加密处理  

文章转自:https://blog.csdn.net/solyutian/article/details/84033765

概述

在对接第三方的时候经常会用到秘钥加密传输数据,需要生成cer文件、key公私钥、pem公私钥去测试接口,这里用openssl去生成公钥私钥,非常好用。
附上window下openssl的安装教程:
https://blog.csdn.net/sunhuansheng/article/details/82218678

生成秘钥

打开控制台:
openssl安装完成后ctrl+r打开控制台,输入openssl进入OpenSSL模式。或者进入秘钥需要生成的目录,在路径栏输入cmd进入当前目录的控制台。
在这里插入图片描述
进入openssl模式:
在这里插入图片描述

1、生成key
OpenSSL> genrsa -out 20210106.key 1024

20210106.key 是生产key的名称可随意 。 1024是生成密钥的长度。

2、生成cer证书
OpenSSL> req -new -x509 -key 20210106.key -out 20210106.cer -days 3650 -subj /CN=baidu.com

20210106.key为之前生成的key的名字,20210106.cer为生成的证书名字,3650为证书过期天数,CN的参数baidu.com是的你主机名或者IP地址。

3、生成pfx证书
OpenSSL> pkcs12 -export -out 20210106.pfx -inkey 20210106.key -in 20210106.cer

注意:生成pfx证书会提示设置密码,此密码要记住,提取密钥时要输入此密码

4、从pfx里提取出密钥对
OpenSSL> pkcs12 -in 20210106.pfx -nocerts -nodes -out pubAndPri.key

提取密钥对需要输入生成fpx证书时输入的密码,通过密钥对可以提取公钥跟私钥。

5、从密钥对里提取出私钥
OpenSSL> rsa -in pubAndpri.key -out openssl_pri.key
6、从密钥对里提取出公钥
OpenSSL> rsa -in pubAndpri.key -pubout -out openssl_pub.key
7、因为RSA算法使用的是pkcs8模式补足,需要对提取的私钥进一步处理
OpenSSL> pkcs8 -topk8 -inform PEM -in openssl_pri.key -outform PEM -nocrypt

在这里插入图片描述

8、保存处理过的私钥

复制窗口中生成的密钥到文本编辑器中保存,命名为 openssl_pri_pkcs8.key 。

9、生成pem公私钥
9.1 生成pem私钥(PKCS1格式)
OpenSSL> genrsa -out private_key.pem 1024
9.2 PKCS1私钥转换为PKCS8(该格式一般java调用)
OpenSSL> pkcs8 -topk8 -inform PEM -in private_key.pem -outform pem -nocrypt -out private_pkcs8.pem
9.3 生成公钥
OpenSSL> rsa -in private_key.pem -out rsa_public_key.pem -pubout

-----------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------
一连串操作下来最后得到的目录:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_21758475/article/details/112258438

智能推荐

hql 字符串where语句_常用的HQL语句-程序员宅基地

文章浏览阅读206次。1.hql更新String hql = "update PhUser set realName=?";int row=this.getSession().createQuery(hql).setString(0, "小李想").executeUpdate();PhUser 类名2.hql删除String hql = "delete PhUser a where a.userId=2";int ro..._hql where 字句

tensorflow读取VGG16.npy文件中卷积层和全连接层参数_vgg16.npy文件里有什么参数-程序员宅基地

文章浏览阅读1.7k次。# -*- coding: utf-8 -*- import numpy as np data_dict = np.load('vgg16.npy', encoding='latin1').item()# 键值对的形式存在# print("data_dict:",data_dict)# print("**********************************")keys ..._vgg16.npy文件里有什么参数

数论基本定理模板及理解(扩展欧几里得,费马小定理,Miller-Rabin,Pollard Rho,组合数取模)_组合数取模 logn-程序员宅基地

文章浏览阅读289次。唯一分解定理若Q为合数,则Q一定可以唯一分解为Q=P1^a1*P2^a2*P3^a3…的形式(P1 P2 P3…为质数)根据唯一分解定理由分解形式得Q的因数个数Q的因数个数x=(a1+1)(a2+1)(a3+1)… 疏解:Q的每一个因数q可以分解为其质因数集合P中取任意个元素的形式,也就是说,P1可以取任意(0…a1)个, P2可以取任意(0…a2)个,以乘法原理组合得到所有情..._组合数取模 logn

Linux shell 脚本编程-基础篇 (二)_pwfile-程序员宅基地

文章浏览阅读1.1k次。继 Linux shell 脚本编程-基础篇 (一)2. 使用结构化命令许多程序要求对 shell 脚本中的命令施加一些逻辑流程控制。有一类命令会根据条件使脚本跳过某些命令。这样的命令通常称为结构化命令(structured command)。结构化命令允许改变程序执行的顺序。 2.1 使用 if-then 语句---------------------------------..._pwfile

get resource from xml_xml. get resource-程序员宅基地

文章浏览阅读430次。Resources myResources = getResources();CharSequence styledText = myResources.getText(R.string.stop_message);Drawable icon = myResources.getDrawable(R.drawable.app_icon);int opaqueBlue = myResources.getColor(R.color.opaque_blue);

linux 扫描局域网内所有主机_ftp://192.168.43.118:3721-程序员宅基地

文章浏览阅读1w次,点赞4次,收藏21次。yum install nmapnmap -sL 192.168.31.0/24_ftp://192.168.43.118:3721

随便推点

理解 K8s 资源更新机制,从一个 OpenKruise 用户疑问开始_kubectl app-程序员宅基地

文章浏览阅读887次。背景OpenKruise 是阿里云开源的大规模应用自动化管理引擎,在功能上对标了 Kubernetes 原生的 Deployment / StatefulSet 等控制器,但 OpenKruise 提供了更多的增强功能如:优雅原地升级、发布优先级/打散策略、多可用区workload抽象管理、统一 sidecar 容器注入管理等,都是经历了阿里巴巴超大规模应用场景打磨出的核心能力。这些 feature 帮助我们应对更加多样化的部署环境和需求、为集群维护者和应用开发者带来更加灵活的部署发布组合策略。目前在阿_kubectl app

引用Nuget包Microsoft.EntityFrameworkCore.Tools.DotNet报错-程序员宅基地

文章浏览阅读1.8k次。错误如下解决方法使用VS2017或更高版本在改项目右键,选择“编辑xxx.csproj”,并添加如下一句话,就可以成功引用改Nuget包<PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3"/>如果添加完成后,nug..._nu1202: 包 microsoft.entityframeworkcore.tools 7.0.5 与 netcoreapp3.1 (.netc

html经典资料,网上不多了_如说有人将图片tad.gif放在c:\images里,而网页放在c:\demo里,这样子的话,我们-程序员宅基地

文章浏览阅读1.6k次。_如说有人将图片tad.gif放在c:\images里,而网页放在c:\demo里,这样子的话,我们

天津招聘Jave,网页设计师,3D建模工程师_天津招聘网页设计师-程序员宅基地

文章浏览阅读363次。1、Java工程师(数量:2人)岗位职责: 1、能够根据需求设计完成前后台编码;2、优化软件,改进用户体验;3、负责撰写相关技术文档。岗位要求:1、2年左右有J2EE开发经验,熟练使用SpringMVC/structs mybatis/Hibernate等框架2、精通各种Web前端以及后端技术,包括HTML/CSS/Javascript/jQuery/Ajax/XML/JSON等3、熟悉jetty_天津招聘网页设计师

Netty实战:优雅的创建TCP客户端(附源码)_springboot+netty实现tcp服务端客户端的源码demo-程序员宅基地

文章浏览阅读3.5k次,点赞3次,收藏11次。文章目录前言1. 前置准备2. 消息处理器3. 重写通道初始化类4. 核心服务5. 效果预览6. 编写http测试接口7. 接口列表8. 源码分享前言Springboot使用Netty优雅、快速的创建TCP客户端。本博客项目源码地址:项目源码github地址项目源码国内gitee地址1. 前置准备pom.xml 依赖 <dependency> <groupId>org.springframework.boot</gr_springboot+netty实现tcp服务端客户端的源码demo

青龙羊毛——腾讯自选股新版本(搬运)_腾讯自选股 新闻抓取-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏38次。自选股脚本更新了,我号早就黑了,一个星期才一米,大家自己玩吧!没教程!自选股新脚本没什么改动,就解决了新版本捉包找不到某些参数的问题,老的能跑就不用换。需要重新捉包,变量名是TxStockCookie,或者把原来捉到的按新格式重新填进去!_腾讯自选股 新闻抓取