1.建立根证书

(1)生成私钥

openssl genrsa -des3 -out CAroot.key 2048。产生一个2048位的私钥,在安装的openssl目录下调用openssl命令。

需要输入私钥保护口令。

产生CAroot.key文件。

(2)生成证书请求

openssl req -new  -key CAroot.key -out  rootca.csr -config D:\OpensslInstall\openssl.cnf

需要输入CAroot.key私钥保护口令。

根据提示输入:国家、省份、组织名、邮箱、等信息。

最后生成rootca.csr证书请求文件。

(本人将编译安装过程中产生的openssl.cnf文件拷贝到D:\OpensslInstall\目录下)

(3)签发证书

openssl req -x509 -days 666 -key rootca.key -in rootca.csr -out CARoot.crt -config D:\OpensslInstall\openssl.cnf

最后生成自签名的根证书 CARoot.crt.。

下面将介绍以CARoot.crt为根证书签发下级证书的过程。

(1)openssl genrsa -des3 -out myprivate.key 1024

生成自己的私钥。

(2)生成证书请求文件

openssl  req -new -key  myprivate.key  -out MyCaReq.csr -config  D:\OpensslInstall\openssl.cnf

(3)根证书签发下级证书

openssl x509 -req -in MyCaReq.csr  -out MyCa.crt   -signkey myprivate.key  -CA CARoot.crt -CAkey rootca.key

-CAcreateserial  -days 990

签发的证书制作完成。

OpenSSL 1.0.0生成p12、jks、crt等格式证书的命令个过程
 
此生成的证书可用于浏览器、Java、tomcat、c++等。在此备忘!
 
 
1.创建根证私钥
命令:
openssl genrsa -out root-key.key 1024
 
2.创建根证书请求文件
 命令:
openssl req -new -out root-req.csr -key root-key.key -keyform PEM

3.自签根证书
命令:
 openssl x509 -req -in root-req.csr -out root-cert.cer -signkey root-key.key -CAcreateserial -days 3650
 
4.导出p12格式根证书
命令:
openssl pkcs12 -export -clcerts -in root-cert.cer -inkey root-key.key -out root.p12

5.生成root.jks文件
keytool -import -v -trustcacerts -storepass 123456 -alias root -file root-cert.cer -keystore
root.jks

生成客户端文件:
1.生成客户端key
openssl genrsa -out client-key.key 1024
2.生成客户端请求文件
openssl req -new -out client-req.csr -key client-key.key
3.生成客户端证书(root证书,rootkey,客户端key,客户端请求文件这4个生成客户端证书)
openssl x509 -req -in client-req.csr -out client-cert.cer -signkey client-key.key -CA root-cert.cer
-CAkey root-key.key -CAcreateserial -days 3650
4.生成客户端p12格式根证书
openssl pkcs12 -export -clcerts -in client-cert.cer -inkey client-key.key -out client.p12
 
客户端jks:
 keytool -import -v -trustcacerts -storepass 123456 -alias client -file client-cert.cer -keystore
client.jks
 
生成服务端文件:
1.生成服务端key
openssl genrsa -out server-key.key 1024
2.生成服务端请求文件
openssl req -new -out server-req.csr -key server-key.key
3.生成服务端证书(root证书,rootkey,客户端key,客户端请求文件这4个生成客户端证书)
openssl x509 -req -in server-req.csr -out server-cert.cer -signkey server-key.key -CA root-cert.cer
-CAkey root-key.key -CAcreateserial -days 3650
4.生成服务端p12格式根证书
openssl pkcs12 -export -clcerts -in server-cert.cer -inkey server-key.key -out server.p12
服务端JKS
 keytool -import -v -trustcacerts -storepass 123456 -alias server -file server-cert.cer -keystore
server.jks

无密码key命令:
openssl rsa -in client-key.key -out client-key.key.unsecure

以上产生的Base64编码方式,PEM、cer,crt

DER编码方式也是有DER .Cer, crt后缀。

PEM--DER/CER(BASE64--DER编码的转换)

openssl x509 -outform der -in certificate.pem -out certificate.der

PEM--P7B(PEM--PKCS#7)

openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

PEM--PFX(PEM--PKCS#12)

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

PEM--p12(PEM--PKCS#12)

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

CER/DER--PEM(编码DER--BASE64)

openssl x509 -inform der -in certificate.cer -out certificate.pem

P7B--PEM(PKCS#7--PEM)

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

P7B--PFX(PKCS#7--PKCS#12)

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/p12--PEM(PKCS#12--PEM)

openssl pkcs12 -in certificate.pfx -out certificate.cer
       如无需加密pem中私钥,可以添加选项-nodes;
       如无需导出私钥,可以添加选项-nokeys;

PEM BASE64--X.509文本格式

openssl x509 -in Key.pem -text -out Cert.pem

PFX文件中提取私钥(.key)

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

PEM--SPC

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

PEM--PVK(openssl 1.x开始支持)

openssl rsa -in mycert.pem -outform PVK -pvk-strong -out mypvk.pvk

PEM--PVK(对于openssl 1.x之前的版本,可以下载pvk转换器后通过以下命令完成)

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

d2i_X509_AUX或者函数d2i_X509()将DER编码大的证书转化为OpenSSL中的X509结构,便于、、读写操作、、

OpenSSL 给自己颁发根证书,由根证书签发下级证书的步骤。的更多相关文章

  1. IIS8中使用OpenSSL来创建CA并且签发SSL证书

    前言 [转载]http://alvinhu.com/blog/2013/06/12/creating-a-certificate-authority-and-signing-the-ssl-certi ...

  2. 自建 CA 中心并签发 CA 证书

    目录 文章目录 目录 CA 认证原理浅析 基本概念 PKI CA 认证中心(证书签发) X.509 标准 证书 证书的签发过程 自建 CA 签发证书并认证 HTTPS 网站的过程 使用 OpenSSL ...

  3. 使用OpenSsl自己CA根证书,二级根证书和颁发证书(亲测步骤)

    ---恢复内容开始--- 一.介绍 企业自用, 到证书机构签发证书的费用和时间等都可以省下..... SSl证书的背景功用.......(省略万字,不废话) 可以参考: SSL证书_百度百科 X509 ...

  4. 使用keytool工具产生带根CA和二级CA的用户证书

    使用keytool工具产生带根CA和二级CA的用户证书 1 生成根CA 1.1 生成根CA证书   根CA实际是一张自签CA,自签CA的使用者和颁发者都是它自己.使用下面的命令生成根证书,如果没有指定 ...

  5. 用Keytool和OpenSSL生成和签发数字证书

    一)keytool生成私钥文件(.key)和签名请求文件(.csr),openssl签发数字证书      J2SDK在目录%JAVA_HOME%/bin提供了密钥库管理工具Keytool,用于管理密 ...

  6. 使用 OpenSSL为WindowsServer远程桌面(RDP)创建自签名证书 (Self-signed SSL certificate)

    前言 笔者查阅很多资料,才写成此文章,如有错误,请读者们及时提出. 一般大家使用远程桌面(Remote Desktop)连接Windows Server时,总会有一个警告提示,如图1 图1 出现此警告 ...

  7. STP 根桥、根port、指定port是怎样选举的

    学习CCNA过程中,对交换机的根桥.跟port以及指定port选举有些迷糊.也度娘了一番,总认为一部分人解释的不够全面精细.通过细致研究终于有了自己的理解,分享给大家,假设纰漏,欢迎指正. STP收敛 ...

  8. C++实现二叉树的链接存储结构(先根、中根和后根遍历)

    验证二叉树的链接存储结构及其上的基本操作. [实验要求]: 1. 从文件创建一棵二叉树,并对其初始化: 2. 先根.中根.后根遍历二叉树: 3. 在二叉树中搜索给定结点的父结点: 4. 搜索二叉树中符 ...

  9. STP 根桥、根端口、指定端口是如何选举的

    学习HCIA过程中,对交换机的根桥.跟端口以及指定端口选举有些迷糊,也度娘了一番,总觉得一部分人解释的不够全面精细.通过仔细研究最终有了自己的理解,分享给大家,如果纰漏,欢迎指正. STP收敛过程: ...

随机推荐

  1. Python相关资料收集

    读写Excel: http://blog.csdn.net/five3/article/details/7034826http://tech.ddvip.com/2012-10/13515777031 ...

  2. [知识点]C++中STL容器之map

    UPDATE(20190416):写完vector和set之后,发现不少内容全部引导到map上了……于是进行了一定的描述补充与更正. 零.STL目录 1.容器之map 2.容器之vector 3.容器 ...

  3. Fox

    Portal --> broken qwq Description 有n只狐狸在一起聚餐,每只狐狸都有一个年龄.按照狐狸们的习惯,坐在一起的两只狐狸的年龄之和需要是质数.现在这些狐狸们在一些圆桌 ...

  4. HDU 4638 莫队算法

    Group Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  5. spoj694 DISUBSTR - Distinct Substrings

    Given a string, we need to find the total number of its distinct substrings. Input T- number of test ...

  6. poj1486 Sorting Slides

    Sorting Slides Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4812   Accepted: 1882 De ...

  7. k8s+docker学习连接汇总

    http://guide.daocloud.io/dcs/docker-9153982.html http://www.dczou.com/viemall/802.html https://wangl ...

  8. HTML 5 Web 存储:localStorage和sessionStorage

    本文内容摘自http://www.w3school.com.cn/ 在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessi ...

  9. 母版页 VS shtml—ASP.NET细枝末节(3)

    这算是html的重用吧? 网页很多地方长得一样,也有不一样的地方. 把网页中一样的地方,提取出来,形成一个文档. 在其他网页中引用,是网站开发的一个传统的思维. 当然不同的技术有不同的表现形式. 例如 ...

  10. iOS数据存取---iOS-Apple苹果官方文档翻译

    CHENYILONG Blog iOS数据存取---iOS-Apple苹果官方文档翻译 数据存取/*技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http:// ...