一个故事讲明白加密与数字证书:https://www.cnblogs.com/franson-2016/p/5530671.html

1、方式一

1. 创建一个目录如Mytest, 进入该目录, 在该目录下打开命令行窗口

2. 启动openssl

openssl    # 执行该命令即可

3. 使用openssl工具生成一个RSA私钥, 注意:生成私钥,需要提供一个至少4位的密码。

genrsa -des3 -out server.key 2048  // 2048私钥的位数,可以不指定,默认值:???
- des3: 使用3des对私钥进行加密,//使用req参数的可以不指定这个参数,加下面

4. 生成CSR(证书签名请求)过渡文件
会引导我们填写申请方的信息:国家,省份,城市,部门…, 格式是pem格式

req -new -key server.key -out server.csr
   
#查看请求
req -in server.csr -text

5. 删除私钥中的密码, 第一步给私钥文件设置密码是必须要做的, 如果不想要可以删掉

rsa -in server.key -out server.key
   -out 参数后的文件名可以随意起

6. 生成自签名证书

x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
#生成的证书是pem进行base64编码的

#查看方式 
openssl x509 -in server.crt -text -noout
#双击安装证书
#打开证书管理器
Win + R
certmgr.msc

server.crt 证书 server.csr 过渡文件 server.key 私钥

在Windows下安装,Openssl-Win64.exe

进入到:C:\Program Files\OpenSSL-Win64\bin\openssl.exe
右键单击->管理员运行 -> OPenSSL >
如果不是管理员打开: Permission Denied —> 权限不够
执行 : genrsa -des3 -out server.key 2048

==自签名证书,自己颁发给自己,自己验证自己。==

2. 方式二

不需要生成csr,直接生成证书,没有指定Subject相关的数据,所以还会引导输入

openssl req -x509 -newkey rsa:4096 -keyout server2.key -out cert.crt -days 365 -nodes

-nodes 不设置密码

解析证书:

openssl x509 -in cert.crt -text

常见的证书格式

1. pem格式
我们使用openssl生成的都是pem格式的
解析过程

openssl x509 -in cert.crt -text

Privacy Enhanced Mail(信封)
查看内容,以”—–BEGIN…”开头,以”—–END…”结尾。

查看PEM格式证书的信息:

Apache和*NIX服务器偏向于使用这种编码格式。
openssl x509 -in certificate.pem -text -noout

2. der格式

我们使用Windows导出的可以使der
对于der格式的,解析方式如下:

openssl x509 -in itcastcrt.cer -text -inform der  // 额外的参数 -inform der

Distinguished Encoding Rules

打开看是二进制格式,不可读。
Java和Windows服务器偏向于使用这种编码格式。
查看DER格式证书的信息

der是格式,与证书的后缀名没有直接关系
openssl x509 -in certificate.der -inform der -text -noout  `请试试-pubkey参数

3. windows导数格式选择

PKI的组成要素

PKI的组成要素主要有以下三个:

– 用户 — 使用PKI的人
– 认证机构 — 颁发证书的人
– 仓库 — 保存证书的数据库