当我特意指出它应该通过TLS连接时,为什么PHP CURL尝试通过SSLv3进行连接?

时间:2016-02-10 19:49:48

标签: php ssl curl osx-elcapitan

环境:

    <FlipView x:Name="flipView"                   
          ItemsSource="{Binding BitMapCollection}" 
          Visibility="{Binding FlipViewVisibility}"             
            <FlipView.ItemTemplate>
                <DataTemplate>
                    <Image Width="200" Height="200" Source="{Binding}" />
                </DataTemplate>
            </FlipView.ItemTemplate>    
    </FlipView>

我在获取HTTPS页面时收到以下错误:

Mac OS X El Capitan 10.11.3
PHP Version 5.6.6
cURL Information    7.38.0
SSL Version OpenSSL/0.9.8zd

根据其他SO问题,听起来问题是它通过SSL3而不是TLS连接,但即使添加了以下内容,我仍然会收到错误:

error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

有人可以帮我弄清楚为什么我仍然会收到sslv3错误?尽管被告知要通过TLS进行连接,但似乎它仍在尝试通过SSLv3进行连接。

编辑: 我发布了test script来证明这个问题。不会在环境中工作,因为它不支持CURL,但它证明了这个问题。请注意,我将代码上传到我的生产服务器,代码运行良好,导致预期的curl_setopt($curl_connection, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); curl_setopt($curl_connection, CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); 响应。但在本地,我明白了:

301 Moved Permanently

编辑: 从命令行执行curl似乎工作正常。在使用PHP CURL执行时,我收到错误。

0 个答案:

没有答案