OpenSSL中有RSA的一些经常使用指令,使用它就能够玩转RSA。 其实主要用到三个命令:算法
genrsa: 生成并输入一个RSA密匙
rsautl: 使用RSA密匙进行加密,解密,签名和验证等运算
rsa: 处理RSA密匙的格式转换等问题
复制代码
长度为1024 bit
openssl genrsa -out private.pem 1024
复制代码
openssl rsa -in private.pem -pubout -out public.pem
复制代码
此时生成了两个文件 private.pem
public.pem
bash
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是加密传输数据的。那么就须要一个加密证书,下面咱们来看看证书的生成步骤。加密
// 从刚才生成的证书中提取一个csr(请求证书文件)文件。
openssl req -new -key private.pem -out rsacert.csr
复制代码
当你输入这行命令时会提示你填入一下信息:spa
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 []: // 密码
复制代码
// 拿着 rsacert.csr 签名一个 rsacert.crt 证书
openssl x509 -req -days 3650 -in rsacert.csr -signkey private.pem -out rsacert.crt
复制代码
https协议就是使用 rsacert.crt 证书来加密。 可是 rsacert.crt 是不能直接拿来使用的,最终仍是须要一次转换;code
openssl x509 -outform der -in rsacert.crt -out rsacert.der
rsacert.der: 文件主要包含一个公钥和一些信息
复制代码
最终须要生产一个 p12,是 rsacert.der 对应的私钥orm
openssl pkcs12 -export -out p.p12 -inkey private.pem -in rsacert.crt
输入两次密码,就生成了p12
复制代码
而后咱们就能够用 p12,来作请求了。cdn