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. ...
随机推荐
- sparksql 用反射的方式将rdd转换成dataset/dataframe
java public class ReflectionDemo { private static SparkConf conf = new SparkConf().setAppName(" ...
- hadoop 3.x 集群/单个节点的启动与停止
1.单个节点操作 启动|停止单个节点 hdfs --daemon start|stop datanode hdfs --daemon start|stop namenode 启动|停止单个节点的Nod ...
- 使用nodejs 来压缩整个目录
var fstream = require('fstream'), tar = require('tar'), zlib = require('zlib'); fstream.Reader({ 'pa ...
- sql这两个表和查询的组合yii通过使用数据库查询
sql两个表的组合查询 使用 join on 比如:两个表查询: select u.username, t.title from user u join task t on u.id = t.id; ...
- 同一性(identical)
f(x)=x,表明 f(⋅) 为同一函数. A 与 B 具有 360° 的区别 A 向左转,再向右转 ⇒ A A 向左转,向左转,向后转 ⇒ A
- wxWidgets初学者导引(2)——下载、安装wxWidgets
wxWidgets初学者导引全目录 PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxSmith ...
- 处理EasyUI中tab的切换问题以及accordion左侧导航栏的代码实现
//左侧导航菜单 function leftMenus() { //$(".easyui-accordion").empty(); $.each(_menus.menus, fun ...
- 数据结构:点之间的最短距离--Floyd算法
Floyd算法 Floyd算法 Dijkstra算法是用于解决单源最短路径问题的,Floyd算法则是解决点对之间最短路径问题的.Floyd算法的设计策略是动态规划,而Dijkstra採取的是贪心策略. ...
- Twitter "like" 动画实战
http://zhuanlan.zhihu.com/FrontendMagazine/20486738
- 学好Java只需要做到这7点,年薪20W起步
大道至简,所以扎实有用的方法,其实都是很简单的,难在踏踏实实的执行过程.今天为大家介绍的就是Java学习的7个看起来非常简单的方法,快学起来吧. 为什么要学习java? Java是目前最流行的编程语言 ...