IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> delphi idhttp Post https 出错 Could not load SSL library -> 正文阅读

[网络协议]delphi idhttp Post https 出错 Could not load SSL library

? ? 之前编译一个小程序,定时向服务器(http://)通过进行Post上传文件,当客户的服务器换成(https://)时,Post出现“Could not load SSL library”提示,说明需要加载SSL库文件失败。

? ? 问题原因:

? ? 1、HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

 2、HTTPS:是以安全为目标的HTTP通道,是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

? ?3、由于http切换到HTTPS,因此当,网站使用HTTPS协议时,程序调不到库文件,出现“Could not load SSL library”出错信息。??

? ? 网上搜索,找到解决办法:

? ? 一、加入“IdSSLIOHandlerSocketOpenSSL”控件,并关联idhttp;让为idhttp调用SSL。

? ? 二、使用了TIdSSLIOHandlerSocket控件,就要调用OpenSSL Library库文件。因此,需要为“IdSSLIOHandlerSocketOpenSSL”,找到适合的驱动Dll,其Dll主要有两个:

? ? “libeay32.dll”、

? ? “libssl32.dll”

? ??记住:这两个文件,要与网站的版本相配合,不匹配还是要出错的,用户可以通过???http://indy.fulgan.com/SSL/?下载。

? ? 下载,逐个解压测试,本人测试好几个版本都能使用。

? ? 这二个Dll应放在执行文件存放的目录中。

? ? 这是本人提供的SSL Dll文件包 openssl-0.9.8i-win32&win64.zip-互联网文档类资源-CSDN下载

? ? 三、设置“IdSSLIOHandlerSocketOpenSSL”的SSlVersions参数

? ? 1、版本目前有以下五个版本

? ?

? ?2、与版本相对就的Method,也是五种,?默认是sslvTLSv1。

? ? 匹配,主要是应对服务器的支持,控件和SSL library”的支持,综合因素。这样,你可以试试。

? ? 建议加入二?个combobox取名cmbcmbSSLVersions和cmbMethod 提供选择:

  case cmbSSLVersions.ItemIndex of
    0: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions  := [sslvSSLv2];
    1: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions  := [sslvSSLv23];
    2: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions  := [sslvSSLv3];
    3: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions  := [sslvTLSv1];
    4: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions  := [sslvTLSv1_1];
    5: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions  := [sslvTLSv1_2];
  end;

  case cmbMethod.ItemIndex of
    0: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:= sslvSSLv2;
    1: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:= sslvSSLv23;
    2: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:= sslvSSLv3;
    3: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:= sslvTLSv1;
    4: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:= sslvTLSv1_1;
    5: IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:= sslvTLSv1_2;
  end;

? ? 这样提高调试机率,快速完成匹配,经测试:

sslvSSLv23
sslvTLSv1
sslvTLSv1_1
sslvTLSv1_2

? ? POST提交请求成功。

另外版本是个集合,可以设置几种版本:

?SSLOptions.SSLVersions?:=?[?sslvSSLv23,sslvSSLv1,sslvSSLv1_,sslvSSLv1_1];

? ??

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 16:03:14  更:2021-12-23 16:03:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:30:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码