码迷,mamicode.com
首页 > Web开发 > 详细

IdHTTP设置SSL证书,乱码问题也解决了

时间:2017-02-23 21:59:35      阅读:1417      评论:0      收藏:0      [点我收藏+]

标签:begin   格式   hand   nes   ica   com   gen   word   引用   

要跟银行做接口,需要使用delphi来post数据,但对方提供的是https开头的网址,需要使用证书,对方已提供证书了,但是还是调用不成功,使用的是idhttp和TIdSSLIOHandlerSocketOpenSSL来post的,indy 版本是10.5.5, OpenSSL的dll版本是openssl-1.0.0-i386-win32。现在报的错是:“could not load certificate error:0906D06C:PEM routines:PEM_read_bio:no start line”。

对方提供了好几个证书,后缀名有:.cer,.pem,.pfx ,不知道到底要用哪一个,而且对方没有delphi版本的Demo,只有 java和C#的。网上查了两天资料,索然无获,不知道如何下手,才能通讯成功。
坛里那位朋友有这方面的开发经验,请不吝指点一二,多谢了!

设置以下两个属性

证书文件:
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.CertFile
密钥文件:
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.KeyFile 

并在OnGetPassword事件当中返回密钥的保护密码即可。

PEM格式证书的起始行和结束行:

引用
-----BEGIN CERTIFICATE-----
......
-----END CERTIFICATE-----


PEM格式私钥的起始行和结束行:

引用
-----BEGIN RSA PRIVATE KEY-----
......
-----END RSA PRIVATE KEY-----

 

pfx格式的证书也可以通过OpenSSL.exe这个实用工具转换成有效的PEM格式。

引用
openssl.exe pkcs12 -in 证书.pfx -out 证书和密钥.pem

--------------------------------------------------------------------------------

乱码问题也解决了
关键代码就在这三行
    RsltStrm:=TStringStream.Create(‘‘,TEncoding.UTF8);
    IdHTTPClient.Post(‘www.abcc.com/abc‘,tmpStrList,RsltStrm);
    tmpStrList.Text:=RsltStrm.DataString;
多谢各位朋友!!!

 

http://bbs.csdn.net/topics/350164870

IdHTTP设置SSL证书,乱码问题也解决了

标签:begin   格式   hand   nes   ica   com   gen   word   引用   

原文地址:http://www.cnblogs.com/findumars/p/6435629.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!