问题描述
最近在做银联终端开发,类似ATM那种机子,搞定了读卡器,密码键盘,使用C#开发的activex,但是现在银联给了几个东西1.一个PEM证书文件2.银联测试IP地址和端口银联说需要使用https访问,但这个PEM证书不知道怎么用,每次发送报文都是远程强制关闭了连接现在在winform或控制台模拟HTTPS发送请求现在不知道是报文有问题,还是证书没使用的问题,我有做过类似的朋友吗?
解决方案
解决方案二:
对方的接口是WEB接口?如果是的话,你可以在模拟提交的时候,将对方的证书加上X509Certificatecer=newX509Certificate("D:\tt.cer");//要看是什么类型证书。具体自己百度HttpWebRequest.ClientCertificates.Add(cer);
解决方案三:
引用1楼fei2yun的回复:
对方的接口是WEB接口?如果是的话,你可以在模拟提交的时候,将对方的证书加上X509Certificatecer=newX509Certificate("D:\tt.cer");//要看是什么类型证书。具体自己百度HttpWebRequest.ClientCertificates.Add(cer);
给的PEM证书文件。。。代码上使用直接找不到对象。。
解决方案四:
usingSystem.Security.Cryptography.X509Certificates;HttpWebRequesthwr=(HttpWebRequest)HttpWebRequest.Create(tUrl);hwr.ClientCertificates.Add(newX509Certificate("D:\tt.cer"));
代码可以这里按理解,应该是需要3个证书。公钥、私钥以及CA根证书,都应该add添加上去。只有一个证书?自己看下是不是需要转换,又或者。。。是不是我搞错了
解决方案五:
c#天生处理不了pem,所以你自己看吧
解决方案六:
如果是https提交xml报文给银联接口的,证书可能是签名报文用的
解决方案七:
引用3楼fei2yun的回复:
usingSystem.Security.Cryptography.X509Certificates;HttpWebRequesthwr=(HttpWebRequest)HttpWebRequest.Create(tUrl);hwr.ClientCertificates.Add(newX509Certificate("D:\tt.cer"));代码可以这里按理解,应该是需要3个证书。公钥、私钥以及CA根证书,都应该add添加上去。只有一个证书?自己看下是不是需要转换,又或者。。。是不是我搞错了
嗯,代码没问题,但是就一个PEM证书,不是CER格式,不知道怎么使用?现在不知道怎么转换。。银联那也没消息支持。。大家看看怎么解决呢
解决方案八:
引用5楼u011012311的回复:
如果是https提交xml报文给银联接口的,证书可能是签名报文用的
是发送8583报文。不知道这个PEM证书怎么用,貌似C#需要CER证书才行,没法转换
解决方案九:
引用4楼shingoscar的回复:
c#天生处理不了pem,所以你自己看吧
那咋办呢,JAVA可以?
解决方案十:
你先安装他们的证书,然后在浏览器的证书管理里面导出.cer的试试.
解决方案十一:
引用9楼BitCoffee的回复:
你先安装他们的证书,然后在浏览器的证书管理里面导出.cer的试试.
问题这个PEM证书在IE下导入直接提示无法失败,在火狐上导入看不到。。郁闷的似乎无法导入
解决方案十二:
顶一下,我晕了,没人看