注意:
- Mac中不能打开pem格式的文件,需要先把pem格式转换为der格式才能被识别
- 在iOS开发中pem和der格式的私钥不能直接使用,需要导出为p12格式的文件
- 以下操作生成的所有文件都会保存在用户初始cd到的文件夹
- 生成一个1024位的私钥文件rsa_private_key.pem
$ openssl genrsa -out rsa_private_key.pem 1024
- 从私钥中提取公钥rsa_public_key.pem
$ openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -outform PEM -pubout
- 将私钥转换成 DER 格式:
$ openssl rsa -in rsa_private_key.pem -out rsa_private_key.der -outform der
- 将公钥转换成 DER 格式:
$ openssl rsa -in rsa_public_key.pem -out rsa_public_key.der -pubin -outform der
- 以明文输出私钥内容:
$ openssl rsa -in rsa_private_key.pem -text -out rsa_private_key.txt
- 以明文输出公钥内容:
$ openssl rsa -in rsa_public_key.pem -out rsa_public_key.txt -pubin -pubout -text
- 使用公钥加密小文件msg.txt:
$ openssl rsautl -encrypt -pubin -inkey rsa_public_key.pem -in msg.txt -out msg.bin
- 使用私钥解密小文件msg.bin:
$ openssl rsautl -decrypt -inkey rsa_private_key.pem -in msg.bin -out a.txt
- 把RSA私钥转换成PKCS8格式:
$ pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt
- 从私钥创建公钥证书请求:
$ openssl req -new -key rsa_private_key.pem -out rsa_public_key.csr
- 生成证书并签名(有效期10年):
$ openssl x509 -req -days 3650 -in rsa_public_key.csr -signkey rsa_private_key.pem -out rsa_public_key.crt
- 把crt证书转换为der格式:
$ openssl x509 -outform der -in rsa_public_key.crt -out rsa_public_key.der
- 把crt证书生成私钥p12文件:
$ openssl pkcs12 -export -out rsa_private_key.p12 -inkey rsa_private_key.pem -in rsa_public_key.crt
参考资料