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
IdHTTP设置SSL证书,乱码问题也解决了的更多相关文章
- QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种,实测成功)
以VS开发为例.因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com ...
- QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种)
因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com/product ...
- nginx 使用HTTPS协议-SSL证书模块报错解决-附nginx安装 : [emerg] the "ssl" parameter requires ngx_http_ssl_module in nginx.c
Linux系统下ngnix使用HTTPS协议启动报错: nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_modul ...
- Nginx服务器部署SSL证书手机不信任解决方法
在wosign申请证书并按指南正确部署证书后,如果发现PC浏览器访问正常,手机或safari浏览器提示证书不受信任,那肯定是在文件传输解压过程中导致证书文件中出现空格.乱码之类的情况,这里教您轻松四步 ...
- 为服务器设置SSL证书,配置Https协议
注意 服务器要打开443端口 1.申请证书,这里推荐腾讯云或者阿里云的,有免费的证书,要求不高的盆友可以试一试 2.打开php.ini扩展. extension=php_openssl.dll 3.打 ...
- 使用自签名SSL证书配置HTTPS,解决浏览器提示不安全警告
项目测试过程中需要将应用从HTTP升级到HTTPS,浏览了网上一些帖子,参考<WebLogic11g-单双向SSL配置(以Springside3为例)>一文使用openssl工具来自建CA ...
- 阿里云ssl证书过期怎么解决 (免费SSL证书) 三步解决
阿里云ssl证书过期怎么解决(免费SSL证书),三步解决 使用免费的SSL证书网站 https://ohttps.com 1.注册帐号 2.申请证书 3.部署到阿里云 4.注意事项 1.注册帐号 到 ...
- 最新阿里云服务器免费SSL证书配置HTTPS的两种方法(图文教程二)
在大家学习如何利用免费SSL证书配置网站HTTPS之前,我们先要搞清楚为什么要开启HTTPS,这个绿色的小锁真的有用吗?所谓的HTTPS其实是(安全套接字层超文本传输协议)是以安全为目标的HTTP通道 ...
- ssl证书验证的问题
对于https请求,是需要ssl证书验证的请求的,所以如果在请求时如果不带ssl证书,那么可以忽略证书的验证 有三种方法去实现: 1.Requests请求: 在文档中可以看到:http://docs. ...
随机推荐
- Hive分析窗体函数之NTILE,ROW_NUMBER,RANK和DENSE_RANK
開始,依照顺序,生成分组内记录的序列–比方,依照pnum降序排列.生成分组内每天的pnum名次ROW_NUMBER() 的应用场景许多.再比方,获取分组内排序第一的记录等等. SELECT polno ...
- MySQL分区表使用方法
原文:MySQL分区表使用方法 1. 确认MySQL服务器是否支持分区表 命令: show plugins; 2. MySQL分区表的特点 在逻辑上为一个表,在物理上存储在多个文件中 HASH分区(H ...
- 【a603】加工生产调度
Time Limit: 1 second Memory Limit: 32 MB [问题描述] 某工厂收到了n个产品的订单,这n个产品分别在A.B两个车间加工,并且必须先在A车间加工后才可以到B车间加 ...
- Arcgis api for javascript学习笔记(4.5版本)-三维地图的飞行效果
其实就只是用到了 view.goTo() 函数,再利用 window.setInterval() 函数(定时器)定时执行goTo().代码如下: <!DOCTYPE html> < ...
- linux下仅仅有rman备份集的异机不同文件夹恢复
昨天在客户那里做了一次rman异机的恢复,把生产库弄一份给測试库用,总库大概80G,总共花费了2个小时,当时客户的环境是windows 11.2.0.3,今天早晨在linux下又一次測试了一下,记录下 ...
- JScript实现将指定目录下的vc工程加到解决方案
作者:朱金灿 来源:http://blog.csdn.net/clever101 main(); function main() { try { var WSShell = WScript.Creat ...
- Disk array controller and information processing apparatus
A disk array controller has a function of relocating a plurality of data blocks stored in a disk arr ...
- python栈--字符串反转,括号匹配
栈的实现: # 定义一个栈类 class Stack(): # 栈的初始化 def __init__(self): self.items = [] # 判断栈是否为空,为空返回True def isE ...
- sklearn 下的流行学习(Manifold Learning)—— sklearn.manifold
1. t-SNE from sklearn.manifold import TSNE X_proj = TSNE(random_state=123).fit_transform(X) 2. t_sne ...
- 2-5 利用RestTemplateCore简化调用Consul中的服务
1.必须要安装RestTemplateCore包 2.请求服务,必须要知道 a Consul服务器的地址:b 请求的服务名 ;c 具体请求的api接口 利用RestTemplateCore简化调用Co ...