openssl
1.生成私钥
openssl genrsa -out rsa_private_key.pem 1024
2、通过私钥生成公钥
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
3、对私钥进行pkcs8编码
openssl pkcs8 -in rsa_private_key.pem -topk8 -out pkcs9_rsa_private_key.pem -inform PEM -outform PEM -nocrypt
4、生成加密的私钥
openssl genrsa -aes256 -passout pass:123456 -out aes_rsa_private_key.pem 1024
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文件的密码(导入导出)
##############################################################################################
摘要算法
过程:
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
结果:
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的
相关阅读
2014年4月8日,XP宣布正式停止服务的日子,也是Openssl爆出大漏洞的日子。整个下午我们都处于应急状态中,精神紧绷,这个漏洞影响30-50%
VS2010使用openssl的静态库libeay32.lib和ssleay32.li
这是我的博客的另一个地址:http://blog.sina.com.cn/s/blog_149e9d2ec0102wzvi.html1. 首先从网上下载两个文件:一个是Perl,一个是op
参考:https://blog.csdn.net/oldmtn/article/details/52208747 参考:http://man.linuxde.net/openssl 一.什么是openssl 1.1 O
声明:OpenSS系列文章是根据DragonKing, Mail: [email protected]发布在https://openssl.126.com的系列文章整理(这
了解漏洞 Heartbleed漏洞: Heartbleed漏洞是openssl的一个漏洞,这个严重漏洞(CVE-2014-0160)的产生是由于未能在memcpy()调用受害