【问题标题】:Zend Unable to connect to HTTPS server through proxyZend 无法通过代理连接到 HTTPS 服务器
【发布时间】:2015-11-03 10:41:04
【问题描述】:

我正在使用 Zend Framework 1.*,当执行“stream_socket_enable_crypto”时总是返回 false。 Zend 抛出这个异常:

"Unable to connect to HTTPS server through proxy could not negotiate secure connection." 

我在之前的方法“stream_socket_enable_crypto”中尝试了以下所有加密类型,结果相同...

STREAM_CRYPTO_METHOD_SSLv2_CLIENT
STREAM_CRYPTO_METHOD_SSLv3_CLIENT
STREAM_CRYPTO_METHOD_SSLv23_CLIENT
STREAM_CRYPTO_METHOD_TLS_CLIENT
STREAM_CRYPTO_METHOD_SSLv2_SERVER
STREAM_CRYPTO_METHOD_SSLv3_SERVER
STREAM_CRYPTO_METHOD_SSLv23_SERVER
STREAM_CRYPTO_METHOD_TLS_SERVER

深入研究“connectHandshake” Zend 方法,我看到我可以连接到代理,但不能通过代理连接到服务器。我被这个问题困扰了很长时间,有什么线索吗?

PHP 版本 5.6.*

【问题讨论】:

    标签: php zend-framework proxy


    【解决方案1】:

    终于意识到是PHP版本的问题。 在 PHP 5.6.* 中,“verify_peer_name”默认更改为 TRUE。查看更改日志here

    将此属性设置为 false 解决了连接问题。

        $adapter->setStreamContext(array(
                'socket' => array(
                    // Bind local socket side to a specific interface
                    'bindto'            => self::PROXY_HOST . ':' . self::PROXY_PORT
                ),
                'ssl' => array(
                    'crypto_method'     => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
                    // Verify server side certificate,
                    'verify_peer'       => false,
                    'verify_peer_name'  => false,
                    'allow_self_signed' => false,
                )
            )                
        );
    

    希望对别人有帮助

    【讨论】:

      猜你喜欢
      • 2010-10-05
      • 1970-01-01
      • 2016-11-19
      • 2023-03-22
      • 1970-01-01
      • 2023-03-29
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多