卷曲SSL相关连接超时使用Docusign API

时间:2017-01-17 21:28:59

标签: apache ssl curl docusignapi suse

我们正在尝试在我们的生产环境中设置Docusign rest api作为测试的一部分。 通过我们的登台和其他测试服务器连接到api不需要特殊配置。但是,在我们的生产服务器上尝试相同的代码时,我一直遇到以下错误:

这是从sdk / docusign-php-client-master / src / ApiClient.php的第227行输出的 (api reference https://docs.docusign.com/esign/

[DEBUG] HTTP Request body ~BEGIN~

~END~
[DEBUG] HTTP Response body ~BEGIN~

~END~
* Hostname was NOT found in DNS cache
*   Trying 162.248.184.25...
* Connected to demo.docusign.net (162.248.184.25) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: /etc/php5/cacert.pem
  CApath: /etc/ssl/certs/
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0


Exception: exception 'DocuSign\eSign\ApiException' with message 'API call to https://demo.docusign.net/restapi/v2/login_information timed out: a:26:{s:3:"url";s:54:"https://demo.docusign.net/restapi/v2/login_information";s:12:"content_type";N;s:9:"http_code";i:0;s:11:"header_size";i:0;s:12:"request_size";i:0;s:8:"filetime";i:-1;s:17:"ssl_verify_result";i:1;s:14:"redirect_count";i:0;s:10:"total_time";d:0.67847199999999996;s:15:"namelookup_time";d:0.50941599999999998;s:12:"connect_time";d:0.59162199999999998;s:16:"pretransfer_time";d:0;s:11:"size_upload";d:0;s:13:"size_download";d:0;s:14:"speed_download";d:0;s:12:"speed_upload";d:0;s:23:"download_content_length";d:-1;s:21:"upload_content_length";d:-1;s:18:"starttransfer_time";d:0;s:13:"redirect_time";d:0;s:12:"redirect_url";s:0:"";s:10:"primary_ip";s:14:"162.248.184.25";s:8:"certinfo";a:0:{}s:12:"primary_port";i:443;s:8:"local_ip";s:14:"10.231.215.217";s:10:"local_port";i:38425;}' in /srv/www/vhosts/server.name.com/pages/test/docusign/sdk/docusign-php-client-master/src/ApiClient.php:233
Stack trace:

    #0 /srv/www/vhosts/server.name.com/pages/test/docusign/sdk/docusign-php-client-master/src/Api/AuthenticationApi.php(264): DocuSign\eSign\ApiClient->callApi('/v2/login_infor...', 'GET', Array, '', Array, '\DocuSign\eSign...')
    **#1 /srv/www/vhosts/server.name.com/pages/test/docusign/sdk/docusign-php-client-master/src/Api/AuthenticationApi.php(193): DocuSign\eSign\Api\AuthenticationApi->loginWithHttpInfo(Object(DocuSign\eSign\Api\AuthenticationApi\LoginOptions))
    #2 /srv/www/vhosts/server.name.com/pages/test/docusign/docusign_wrapper.php(58): DocuSign\eSign\Api\AuthenticationApi->login(Object(DocuSign\eSign\Api\AuthenticationApi\LoginOptions))
    #3 /srv/www/vhosts/server.name.com/pages/test/docusign/docusign_wrapper.php(52): DocuSignWrapper->doLogin()
    #4 /srv/www/vhosts/server.name.com/pages/test/docusign/classtest.php(130): DocuSignWrapper->__construct()
    #5**

至于SSL证书。我认为这可能是问题所在。它的报告与我们的其他服务器不同,后者将CAfile值留空。我无法弄清楚这个配置的位置。 只有/etc/php5/apache2/php.ini才会定义文件位置。但是php -ini显示这不是用于配置php的.ini文件。删除设置似乎没有任何效果。它可能需要重启apache2,但我没有机会关闭服务器。

字符串“etc / php5”也不会出现在代码库中的任何位置,因此不会手动设置。 文件/etc/php5/cacert.pem存在且是https://curl.haxx.se/ca/cacert.pem的当前版本

如果我错了,请纠正我,但我无法手动设置“CAfile”的值,因为它不是我似乎有权访问的设置。

设置细节:

产品服务器:

SUSE Linux Enterprise Server 12 (x86_64)
PHP 5.5.14
cURL:
[version] => 7.37.0 
[ssl_version] => OpenSSL/1.0.1i

转移服务器:

登台服务器成功连接的示例(部分)

* Hostname was found in DNS cache
* Hostname in DNS cache was stale, zapped
*   Trying 162.248.184.25...
* Connected to demo.docusign.net (162.248.184.25) port 443 (#2)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs/

服务器详细信息:

openSUSE Leap 42.1 (x86_64)
PHP 5.5.14 
cURL:
[version] => 7.37.0 
[ssl_version] => OpenSSL/1.0.1i

1 个答案:

答案 0 :(得分:0)

这很可能是客户端SSL证书的问题,而不是DocuSign服务器端的问题。我将查看以前有关PHP和SSL证书的相关问题,例如:

curl: (60) SSL certificate : unable to get local issuer certificate

您还可以尝试使用带有-k选项的cUrl发送不安全的请求(用于测试)。 DocuSign的演示环境也通过http接受请求而不仅仅是https,因此您可能也想要测试它。