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

要跟银行做接口,需要使用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

时间: 2024-10-13 20:14:39

IdHTTP设置SSL证书,乱码问题也解决了的相关文章

QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种,实测成功)

以VS开发为例.因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com/products/Win32OpenSSL.html网页: 2.下载安装包,我下载的是:Win32 OpenSSL v1.0.1c Light安装包,随着时间的推进,这个版本会不断更新的: 3.安装(exe文件)到本地,并且在安装过程中选择将库安装到OpenSSL的安装目录(/bin)下面. 4.

SSL证书常见错误和解决办法

问题:此网站出具的安全证书不是由受信任的证书颁发机构颁发的. 服务器正在使用的SSL证书不是通过正式的全球信任的CA颁发.推荐购买GlobalSign SSL,GeoTrust SSL ,Symante SSL证书, SSL通常是因为没有正确安装证书,请再检查一下是否删除了原来的测试证书,如果网站使用的证书是正确的,请重新启动webserver. 问题:此网站出具的安全证书是为其他网站地址颁发的. 一个SSL证书所对应的域名是一个全域名FQDN( Fully Qualified Domain N

https多网站1个IP多个SSL证书的Apache设置办法

简单记录了Apache的设置,后来又涉及到多个域名.泛域名解析.通配符SSL证书.单服务器/多服务器.IP.端口等方方面面,去查了一些资料才在Apache上配置成功,干脆重新写一篇博文来记录. 多种情况 先写各种可能的情况: 老式的SSL证书是一个证书一个站点一个IP的一一对应,但后来有了改进: 可以配置为一台服务器多个IP,分别对应不同的站点.不同的证书: 还可以配置为一台服务器一个IP,多个端口号对应不同的站点.不同的证书: 后来出现SNI(Server Name Indication服务器

微信小程序 免费SSL证书https、TLS版本问题的解决办法

这篇文章主要介绍了微信小程序 免费SSL证书https.TLS版本问题的解决办法的相关资料,需要的朋友可以参考下 微信小程序 免费SSL证书https.TLS版本问题的解决办法 微信小程序与第三方服务器通讯的域名5个必要条件 1.一个已备案的域名,不是localhost.也不是127.0.0.1,域名不能加端口 2.加ssl证书,也就是https://~~~ 4.HTTPS 服务器的 TLS 版本支持1.2及以下版本,一般就是1.0.1.1.1.2要同时支持这三个版本,一个也不能少,要不然就会出

Nginx配置免费SSL证书StartSSL,解决Firefox不信任问题

先在StartSSL上申请免费一年的SSL证书,具体过程网上很多教程.然后把申请到的key和crt文件上传到服务器,比如/usr/local/nginx/certs/. Nginx配置SSL证书 直接贴上我的nginx的部分配置: server { listen 443; server_name domain.com www.domain.com ; ssl on; ssl_certificate /usr/local/nginx/ssl/ssl.crt; ssl_certificate_key

阿里云配置ssl证书服务遇到的几个问题和解决方法

系统环境: 系统:阿里云ECS CentOS6.5+Apache2.4.10 前提:公司需要将站点升级到使用SSL证书服务(https) 实践执行:在阿里云的证书服务--选择了一个免费的证书服务,毕竟第一次配置,有免费的就先用免费的配置吧.节约成本哈[/鬼脸]证书管理购买页面地址:https://yundun.console.aliyun.com/?spm=5176.2020520110.1002.d10cas.6c1b1426nLEXAP&p=cas#/cas/home页面有很详细的操作流程指

SSL证书没有绿锁您与此网站建立的连接并非完全安全解决办法

为什么我新建的网站配置好SSL后,网站https旁边提示不安全,没有小绿锁了? 不少国内空间的新手站长,当使用了SSL证书之后,发现浏览器有https效果了,但是没有绿锁,谷歌浏览器提示"您与此网站建立的连接并非完全安全解决" 这种情况都是属于网站代码不符合SSL证书规范导致的. 网站代码规范-for SSL(https) 规范1:代码里的元素:图片,js,css,等是不能调用外面的http://路径: 规范2:不能使用iframe到http://路径上: 规范3:from标签也不能a

JMeter代理录制SSL证书安装及设置

第一步:在jmeter内添加HTTP代理服务器 1.设置端口号 2.设置目标控制器 包含模式&排除模式 就是我们需要的和我们不需要的.一般情况下,我们只需要排除我们不需要的. 格式: .*\.css 排除css文件," .* " 匹配任意字符的意思 " \ "是转义的意思 .*\.js 排除js文件 .*\.png 排除png文件 第二步:设置手机端代理设置 1.指定IP(该IP就是运行jmeter程序的PC的IP地址) 2.指定端口号(该端口号必须与jme

部署沃通SSL证书解决ios7.1的app下载问题

问题描述 最近苹果发布了IOS7.1.话说苹果每次发布都牵动开发者的心哈.苹果从ios7.1开始,用户安装app,需要使用https协议,来下载plist文件.也就说,在安装app的第一步,下载.plist文件,需要使用https协议.https协议如下: 这里不详细描述https协议.简单描述,用户使用https来下载.plist文件.则需要网站支持https协议.支持https协议,除了服务端做一些配置外,还需要申请一张服务器SSL证书,这个SSL证书必须是受信任的CA机构发的(如沃通WoS