OpenSSL 使用 RSA

openssl使用RSA

OpenSSL中有RSA的一些常用指令,使用它就可以玩转RSA。 其实主要用到三个命令:

genrsa: 生成并输入一个RSA密匙
rsautl: 使用RSA密匙进行加密,解密,签名和验证等运算
rsa:   处理RSA密匙的格式转换等问题
复制代码
  • 使用genrsa生成私钥
长度为1024 bit
openssl genrsa -out private.pem 1024
复制代码

  • 从私钥中提取公钥
openssl rsa -in private.pem -pubout -out public.pem
复制代码

此时生成了两个文件 private.pem public.pem

  • 将私钥转换为明文
openssl rsa -in private.pem -text -out private.txt
复制代码
  • 通过公钥加密数据,私钥解密数据
加密:openssl rsautl -encrypt -in msg.txt -inkey public.pem -pubin -out enc.txt
解密:openssl rsautl -decrypt -in enc.txt -inkey private.pem -out dec.txt
复制代码

  • 通过私钥加密数据,公钥解密数据
加密:openssl rsautl -sign -in msg.txt -inkey private.pem -out enc.txt
解密:openssl rsautl -verify -in enc.txt -inkey public.pem -pubin -out dec.txt
复制代码

HTTPS证书的生成步骤

使用https的同志都知道,https是加密传输数据的。那么就需要一个加密证书,下面我们来看看证书的生成步骤。

// 从刚才生成的证书中提取一个csr(请求证书文件)文件。
openssl req -new -key private.pem -out rsacert.csr
复制代码

当你输入这行命令时会提示你填入一下信息:

Country Name (2 letter code): // 城市名称 
State or Province Name (full name): // 省名称
Locality Name (eg, city): // 城市名称
Organization Name (eg, company): // 公司名称
Organizational Unit Name (eg, section): // 组织名称
Common Name (eg, fully qualified host name):// host name
Email Address []: // email
A challenge password []: // 密码
复制代码

这样csr就生成了。就可以那这个csr去请求证书了。就可以去请求签名。 实际上,证书颁发机构也是这样做的,只不过他们具有权威性。在1983年9月12日麻省理工学院在美国为RSA算法申请了专利,所以我们使用是需要付费的,实际上我们拿着csr就是权威机构请求证书了。那么具体是怎么做的了。

// 拿着 rsacert.csr 签名一个 rsacert.crt 证书
openssl x509 -req -days 3650 -in rsacert.csr -signkey private.pem -out rsacert.crt
复制代码

https协议就是使用 rsacert.crt 证书来加密。 但是 rsacert.crt 是不能直接拿来使用的,最终还是需要一次转换;

openssl x509 -outform der -in rsacert.crt -out rsacert.der
rsacert.der: 文件主要包含一个公钥和一些信息
复制代码

最终需要生产一个 p12,是 rsacert.der 对应的私钥

openssl pkcs12 -export -out p.p12 -inkey private.pem -in rsacert.crt
输入两次密码,就生成了p12
复制代码

然后我们就可以用 p12,来做请求了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值