整理下这两天写一个支付通道的MockServer-20171103

这两天项目比较紧但是还没有到我这边来,看着大家忙,心里有点方.....于是决定写点东西方便后面自己的测试。我觉得一个好的测试人员要能够收放自如。放:测试大多数写的是调用脚本,已经很熟了。收:接受请求。所以觉得写个支付通道的MockServer来收下.

耗两天终于搞定了,可以有时间来整理整理这两天遇到的一些问题了。希望以后类似的问题都能够快速的搞定。。因为系统和支付系统交付都是基于https协议,双向认证的。所以主要遇到的问题主要是证书的生成和加密和解密过程遇到的。

前提需要了解的一些知识,之前因为不太了解遇到了很多问题 花费了一些时间,甚至中途有不搞了的想法。静心下来,把每个不清晰的地方尽力去搞清楚就可以了。其实往往在你最困惑的时候也许就是距离成功最近的时候了。好了 话不多说。开搞。


一、前提:

你需要了解的数字证书

证书的类型:本次用到的证书类型:JKS, PKCS12。

PKCS#12:是公钥加密标准,它规定了可包含所有私钥、公钥和证书其以二进制格式存储,也称为 PFX 文件,在windows中可以直接导入到密钥区。生成的证书后缀一般为.pfx.由于可以再windows中直接导入,一般用于客户方也就是商户证书。

JKS(Java Key Store):ProviderSUN,在每个版本的JDK中都有。后缀一般是.jks或者.keystore或.truststore等


      证书的编码格式:Base64 、二进制


证书中包含的内容:公钥或私钥

公钥和私钥之间的作用

公钥(证书)和私钥成对存在。通信双方各持有自己的私钥和对方的公钥。自己的私钥需密切保护,而公钥是公开给对方的。在windows下,单独存在的公钥一般是后缀为.cer的文件.私钥的后缀一般为.pfx或者.keystore
A用自己的私钥对数据加密,发给B,B用A提供的公钥解密。同理B用自己的私钥对数据加密,发送给A后,A用B的公钥解开。
公钥的两个用途:
1。验证对方身份:防止其他人假冒对方发送数据给你。
2。解密。
私钥的两个用途:
1。表明自己身份:除非第三方有你私钥,否则无法假冒你发送数据数据给对方。
2。加密。


二 、数据准备

证书

客户(商户)调用方:客户调用方需要自己的私钥证书(client1.pfx)和服务方的公钥证书(server2.cer)

MockServer方: 服务方需要自己的私钥证书(server1.keystore)和客户方的公钥证书(client1.cer)

采用jdk自带的keytool生成对应的证书参考:(http://www.cnblogs.com/zhangzb/p/5200418.html 、http://www.cnblogs.com/benwu/articles/4891758.html

生成服务器证书:

keytool -genkey -alias server 1 -keypass 123456 -keyalg RSA  -keystore D:\mycer\server1.keystore -storepass 123456

-----*备注:-keypass 123456 访问私钥的密码 -storepass 123456 访问容器的密码

导出服务器的公钥证书:(Base64)

 keytool -export -alias server1 -keystore D:\mycer\server1.keystore -file D:\mycer\server2.cer -rfc -storepass 123456
-----*备注: keystore.jks 也可以为 .keystore格式 ; server.crt也可以为 .cer格式"-rfc" 表示以base64输出文件,否则以二进制输出。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值