记一次openssl生成证书、私钥、公钥

6a2f856e36fc3562ccf765dced56b2b7
之前跟银联对接时,由于我是用PHP做开发的,比较较真,一开始没有用他们提供的工具去做,绕了点弯路。
第一步就是涉及加解密问题,需要用到私钥公钥,实际上用openssl可以很方便的随意生成,不过命令太多,如果你不是用正确的命令可能得到的文件也相去甚远。

openssl genrsa -out rsa_private_key.pem 1024
生成一个私钥文件,这个文件你自己要保存好,他是后面所有东西的基础,他如果没了整套数据都要换。
openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout
生成一个公钥文件,我们知道加密传输就是靠公钥做加密及验证

如果要对方环境可以验签测试,私钥需要多转换一步
openssl pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt
这样这个新产生的私钥可以发给对方使用

怎么用

ServerA用第一步产生的私钥加密数据传给ServerB,ServerB用第二步产生的公钥做验签
同理,ServerB加密后发数据给ServerA时,SeverA可以用B提供的公钥做验签。