ESSAY / NOTE
openssl生成数字证书CSR
一个故事讲明白加密与数字证书:https://www.cnblogs.com/franson-2016/p/5530671.html
1、方式一
1. 创建一个目录如Mytest, 进入该目录, 在该目录下打开命令行窗口
2. 启动openssl
PKI的组成要素
PKI的组成要素主要有以下三个:
- 用户 --- 使用PKI的人
- 认证机构 --- 颁发证书的人
- 仓库 --- 保存证书的数据库

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 -text5. 删除私钥中的密码, 第一步给私钥文件设置密码是必须要做的, 如果不想要可以删掉
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.mscserver.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 -textPrivacy Enhanced Mail(信封) 查看内容,以"-----BEGIN..."开头,以"-----END..."结尾。 查看PEM格式证书的信息:
Apache和*NIX服务器偏向于使用这种编码格式。 openssl x509 -in certificate.pem -text -noout2. der格式 我们使用Windows导出的可以使der 对于der格式的,解析方式如下:
openssl x509 -in itcastcrt.cer -text -inform der // 额外的参数 -inform derDistinguished Encoding Rules 打开看是二进制格式,不可读。 Java和Windows服务器偏向于使用这种编码格式。 查看DER格式证书的信息
der是格式,与证书的后缀名没有直接关系 openssl x509 -in certificate.der -inform der -text -noout `请试试-pubkey参数3. windows导数格式选择
PKI的组成要素
PKI的组成要素主要有以下三个:
- 用户 --- 使用PKI的人
- 认证机构 --- 颁发证书的人
- 仓库 --- 保存证书的数据库
