【问题标题】:Use Curl SSL Certificate in Wordpress Plugin在 Wordpress 插件中使用 Curl SSL 证书
【发布时间】:2015-03-10 16:04:02
【问题描述】:

我有以下代码:

$curl = curl_init();

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_fields));
curl_setopt($curl, CURLOPT_VERBOSE, '1');           
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, '0');            
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, '0');            
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSLCERT, 'cert.pem');            
curl_setopt($curl, CURLOPT_SSLKEY,  'cert.pem');
curl_setopt($curl, CURLOPT_SSLKEYPASSWD, 'mypass');
curl_setopt($curl, CURLOPT_URL, 'https://example.com:18443/Handler');

当我只运行这段代码时,一切正常。 (包括 SSL 证书)。

但是,当我在 WP 插件中使用此代码时,有:curl_error: unable to use client certificate (no key found or wrong pass phrase?)

我认为 Wordpress 核心中有一些隐藏的过滤器,它们会阻止/编辑我的 ssl Curl 请求。

如何避免 WP http curl 过滤器?

【问题讨论】:

    标签: ssl curl wordpress


    【解决方案1】:

    我找到了解决办法:

    $certfile = plugin_dir_path(__FILE__) . '/cert.pem';
    
    $curl = curl_init();
    
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_fields));
    curl_setopt($curl, CURLOPT_VERBOSE, '1');           
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, '0');            
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, '0');            
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSLCERT, $certfile);            
    curl_setopt($curl, CURLOPT_SSLKEY,  $certfile);
    curl_setopt($curl, CURLOPT_SSLKEYPASSWD, 'mypass');
    curl_setopt($curl, CURLOPT_URL, 'https://example.com:18443/Handler');
    

    【讨论】:

      猜你喜欢
      • 2017-11-21
      • 2011-10-31
      • 2018-02-19
      • 2013-02-18
      • 2015-04-29
      • 2020-09-20
      • 2021-02-20
      • 2012-09-17
      • 2016-07-08
      相关资源
      最近更新 更多