Lazarus + Indy + Mac + OpenSSL = CloudFlare网站上的SSL错误

时间:2017-03-28 20:10:30

标签: ssl indy lazarus

我在macOS Sierra 10.12.3上使用Lazarus 1.6.4,使用最新的Indy HTTP库(今天更新),生成32位碳应用程序。

我的程序默认使用Apple在 / usr / lib / libcrypto.0.9.8.dylib libssl.0.9.8.dlib 强> ...

我收到错误

  

项目....提出异常类' EIdOSSUnderlyingCryptoError'同   信息;连接SSL时出错。错误:14077410:SSL   rouines:SSL23_GET_SERVER_HELLO:sslv3警报握手失败

解决此问题的最可靠方法是什么?

我的代码是这样的:

    TmpOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create;
    // have had code rotate between
    TmpOpenSSL.SSLOptions.SSLVersions := [sslvSSLv23]; 
    TmpOpenSSL.SSLOptions.Metod := sslvSSLv23; 
    //
    TmpOpenSSL.SSLOptions.SSLVersions := [sslvTLSv1_2]; 
    TmpOpenSSL.SSLOptions.Metod := sslvTLSv1_2; 
    //
    TmpOpenSSL.SSLOptions.SSLVersions := [sslvTLSv1_1]; 
    TmpOpenSSL.SSLOptions.Metod := sslvTLSv1_1; 
    //
    TmpOpenSSL.SSLOptions.SSLVersions := [sslvTLSv1_0]; 
    TmpOpenSSL.SSLOptions.Metod := sslvTLSv1_0; 
    //
    TmpOpenSSL.SSLOptions.Mode := sslmClient;
    TmpOpenSSL.SSLOptions.VerifyMode := [];
    TmpOpenSSL.SSLOptions.VerifyDepth := 0;
    W.IOHandler := TmpOpenSSL;

无论使用哪种,我都会得到上述错误......有点奇怪

我不想自己分发OpenSSL - 而是使用Mac OS 提供的东西(如果必须的话) - 即使对非专业用户也很容易安装

注意:Windows10 + Lazarus 1.6.4 + Indy(最新)+ OpenSSL(最新的fulgan二进制文件)工作

...

我认为这是相关的

EIdOSSLUnderlyingCryptoError Exception

问题在Windows上最新版本的Indy中解决,但在Mac上没有解决(可能是因为Mac上的OpenSSL库版本)

0 个答案:

没有答案