OpenSSL RSA 加密/解密 签名/验签 自签名证书

本文介绍了如何使用OpenSSL进行RSA加密、解密、签名和验签操作,包括生成私钥、导出公钥以及自签名证书的创建。特别指出在Mac中OpenSSL为LibreSSL,并强调自签名证书常用于内网HTTPS服务,验签则应用于支付通知的验证。同时,文章提及现代OpenSSL更推荐使用genpkey、pkey等命令。

本文首发在 这里

Commands

生成私钥

openssl genrsa -out key.pem

导出公钥

openssl rsa -in key.pem -pubout -out pubkey.pem

加密

openssl rsautl -encrypt -inkey pubkey.pem -pubin -in plain.txt -out cipher.txt

解密

openssl rsautl -decrypt -inkey key.pem -in cipher.txt -out plain.txt

签名

openssl rsautl -sign -in file -inkey key.pem -out sig

验签

openssl rsautl -verify -in sig -inkey key.pem

自签名证书

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out req.pem
// 下面这个版本不加密且解决Safari正常但Chrome访问NET::ERR_CERT_COMMON_NAME_INVALID
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -addext "subjectAltName = DNS:localhost" -out req.pem

注:

  • Mac中的OpenSSL是LibreSSL
  • 自签名常会用在内网提供HTTPS服务
  • 验签用在支付成功后验证第三方通知的消息
  • 现在应该流行 genpkey、pkey、pkeyparam、pkeyutl 相关命令
  • 加密分为 对称(加解密使用相同密钥) 和 非对称(加解密使用不同密钥)
  • 私钥加密公钥解密是没有意义的,公钥是公开的,很多人持有,达不到加密的意义
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值