openssl的使用

1.生成私钥

openssl genrsa -out rsa_private_key.pem  1024

  openssl的使用_第1张图片

2、通过私钥生成公钥

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

  openssl的使用_第2张图片

3、对私钥进行pkcs8编码

openssl pkcs8 -in rsa_private_key.pem -topk8 -out pkcs9_rsa_private_key.pem  -inform PEM -outform PEM  -nocrypt

  openssl的使用_第3张图片

4、生成加密的私钥

openssl genrsa -aes256 -passout pass:123456 -out aes_rsa_private_key.pem 1024

  openssl的使用_第4张图片

5、通过加密私钥生成公钥

openssl rsa -in aes_rsa_private_key.pem -passin pass:123456 -pubout  -out rsa_public_key.pem

6、非加密私钥转加密

openssl rsa -in rsa_private_key.pem -aes256 -passout pass:123456 -out t_aes_rsa_private_key.pem

7、加密转非加密

openssl rsa -in t_aes_rsa_private_key.pem -passin pass:123456 -out t_rsa_private_key.pem

8、私钥pem转der

openssl rsa -in rsa_private_key.pem -outform der  -out rsa_private_key.der

9、查看私钥明细

openssl rsa -in rsa_private_key.pem -text -noout

10、通过已有的私钥生成签名证书

openssl req -new -x509 -days 365 -key aes_rsa_private_key.pem -out cert.crt

11、生成私钥和签名证书

openssl req -newkey rsa:2048 -nodes -keyout rsa_private_key.pem -x509 -days 365 -out cert.crt  #-nodes指的是不用密码

12、通过私钥生成CA签名

openssl req  -new -key aes_rsa_private_key.pem -passin pass:123456 -out server.csr

 *** 此时生成的 csr签名请求文件可提交至 CA进行签发 ***

13、查看csr细节信息

openssl req -noout -text -in server.csr

14、查看证书细节

openssl x509 -in server.crt -noout -text

15、通过pem证书和私钥生成pkcs#12证书

openssl pkcs12 -export  -password pass:123456 -in server.crt  -inkey rsa_private_key.pem -out server.p12

其中-export指导出pkcs#12 证书,-inkey 指定了私钥文件,-passin 为私钥(文件)密码(nodes为无加密),-password 指定 p12文件的密码(导入导出)

##############################################################################################

摘要算法

过程:

openssl的使用_第5张图片

1.使用md5指定sha1算法,明文输出签名文件(所以建议做摘要和签名验证时使用dgst指令,以免误导)

openssl dgst  -sha1 -sign rsa_private_key.pem cert.crt -out sign.txt
---一样的结果
openssl md5  -sha1 -sign rsa_private_key.pem cert.crt -out sign.txt
---指定-c -hex参数,以16进制打印结果
openssl dgst  -sha256 -c -hex  -sign rsa_private_key.pem cert.crt

 结果:

 openssl的使用_第6张图片

 

2.使用RSA秘钥进行签名验证操作

--公钥验证
openssl dgst -verify rsa_public_key.pem -sha1  -signature sign.txt  cert.crt
--私钥验证
openssl dgst -prverify rsa_private_key.pem -sha1  -signature sign.txt  cert.crt

 结果:

 

 

证书信息:

证书版本:            V3
证书序列号:          07000220180925110000001562261
证书持有者秘钥标识符:  80:B2:32:B9:37:C3:F9:E9:8D:D3:DC:44:E9:59:AB:47:93:9E:70:CB
//证书拥有者
证书拥有者信息:       /C=CN/ST=广东省/L=深圳市/O=机构测试3/OU=深圳共筑网络科技项目测试/CN=机构测试3
证书拥有者信息CN:     机构测试3
证书拥有者信息O:      机构测试3
证书拥有者信息OU:     深圳共筑网络科技项目测试
//证书颁发者
颁发者秘钥标识符:     keyid:95:4D:13:1F:6B:21:91:09:6F:16:12:8A:65:BC:0B:56:0B:11:6B:C8
证书颁发者信息:        /C=CN/O=Global Digital Cybersecurity Authority Co., Ltd./CN=GDCA Public CA1
证书颁发者CN:        GDCA Public CA1
证书颁发者O:         Global Digital Cybersecurity Authority Co., Ltd.

证书有效期:          2018-9-25:00:00:00  2019-9-25:00:00:00
秘钥用途:            Digital Signature, Non Repudiation

证书信息:

    CN: 公有名称(Comon Name)     ---对于签名证书为申请单位名称,对于客户端为证书申请者姓名

    O:单位名称(Orgnization Name)  ---对于签名证书为申请单位名称,对于客户端证证书申请者所在的单位名称

   其他的单词意思好理解

    OU: 显示其他内容

issuer : 证书是由哪个公司创建的

 

名词解释:

OAEP(optimal asymmetric encryption padding):最优非对称加密填充。RSA加解密多基于OAEP。

PSS(probability Signature schema):。RSA的签名认证是基于PSS的

pkcs8

说明:

1、将pkcs8格式的秘钥转换成pkcs1的秘钥

2、将pkcs1的秘钥转换成pkcs8的加密秘钥或无加密秘钥

# 生成无加密的私钥文件。一般是java程序使用
openssl pkcs8 -in ecc_ca_private_key.pem -topk8  -nocrypt
 
# 生成加密的pkcs8格式的私钥文件
openssl pkcs8 -in ecc_ca_private_key.pem -topk8 -v2 des3  -out pkcs8/ecc_ca_private_key_pkcs8.pem

# 读取加密的pkcs8文件、无加密的pkcs8文件
openssl pkcs8 -in ecc_ca_private_key_pkcs8.pem
openssl pkcs8 -in ecc_ca_private_key_pkcs8.pem -nocrypt

 

ECC的使用

1.创建ecc私钥文件和ecc参数

openssl ecparam -out ecc_private_key.pem -name prime256v1 -genkey
# 补充:导出ecc公钥
openssl pkey -in ecc_ca_private_ket.pem -pubout -out ecc_ca_public_key.pem
# 查看支持的椭圆曲线列表
openssl ecparam -list_curves

结果:

openssl的使用_第7张图片

 

2.查看ecc的参数

penssl ecparam  -in ecc_private_key.pem -text

结果:

openssl的使用_第8张图片

3.验证ecc参数

openssl ecparam  -in ecc_private_key.pem -check

结果:

4..签发证书

1.生成CA的ecc私钥文件
openssl ecparam -out ecc_ca_private_ket.pem -name prime256v1 -genkey
2.生成CA的请证书求文件
openssl req  -key ecc_ca_private_ket.pem -new -out ecc_ca.req
3.通过证书请求文件生成证书
openssl x509 -req -in  ecc_ca.req -signkey ecc_ca_private_ket.pem -out ecc_ca_x509.pem

4.生成子站点CA的ecc秘钥文件
openssl ecparam -name prime256v1 -genkey -out ecc_ca_site_private_key.pem
5.生成子站点CA的证书请求文件
openssl req -key ecc_ca_site_private_key.pem  -new -out ecc_ca_site.req
6.通过CA根证书和子站点证书请求文件生成子站点证书
openssl x509 -req -in ecc_ca_site.req -CA ecc_ca_x509.pem -CAkey ecc_ca_private_ket.pem


结果:

openssl的使用_第9张图片

 openssl的使用_第10张图片

你可能感兴趣的:(ssl)