gpt4 book ai didi

php - SoapFault 异常 [HTTP] 无法连接到主机 : With Local SSL Certificate

转载 作者:可可西里 更新时间:2023-10-31 23:31:21 26 4
gpt4 key购买 nike

我正在尝试使用 PHP Soap 客户端通过本地 SSL 文件连接到 SOAP 网络服务。由于本地 SSL 证书不能与 PHP 一起正常工作,我已经下载了 WSDL 文件并将其保存在本地。

现在,当我尝试连接到网络服务时,出现此错误:

SoapFault exception: [HTTP] Could not connect to host in /var/www/index.php:38 Stack trace: #0 [internal function]: SoapClient->__doRequest('__call('GetTests', Array) #2 /var/www/index.php(38): SoapClient->GetTests() #3 {main}

我在 Debian Wheezy 服务器上工作。当我在 Stackoverflow 上做了一些阅读时,我发现你应该启用我安装并根据 phpinfo() 加载的 openssl;

当我运行脚本时:

soap.wsdl_cache_enabled = 0
soap.wsdl_cache_ttl = 0

在我的/etc/hosts 文件中,我添加了服务只是为了确定

我将防火墙设置为接受 SOAP:

ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:1664
ACCEPT tcp -- anywhere anywhere tcp dpt:1664

我在 PHP 文件中尝试了几个设置,比如使用 TLS 或 SSLv3 等。以上都没有帮助。

这是我的脚本:

error_reporting(E_ALL ^ E_NOTICE);
ini_set('soap.wsdl_cache_enabled',0);
ini_set('soap.wsdl_cache_ttl',0);

$wsdl = "/var/www/php/soap.wsdl";
$url = "https://www.soaptest.nl/api/soap";
$pem = "/var/www/php/my_interface.p12";

$client = new SoapClient(
$wsdl,
array(
"location" => "https://www.soaptest.nl/api/soap",
//"uri" => "http://www.soaptest.nl/api",
"local_cert" => $pem,
"passphrase" => "mypassforthepem",
"soap_version" => SOAP_1_1,
"trace" => true,
"exceptions" => 0,
"features" => SOAP_SINGLE_ELEMENT_ARRAYS
)
);

print $client->GetTests();

到目前为止,我所做的所有设置似乎都不起作用。我可能会忘记一些事情或做一些我不应该做的事情,但我再也看不到了。

请帮帮我,让我知道更多。提前致谢。

最佳答案

我通过使用 openssl 将 PEM 文件拆分为两个单独的 key 和 crt 文件解决了这个问题:

openssl pkcs12 -in certname.pem -nocerts -out key.pem -nodes
openssl pkcs12 -in certname.pem -nokeys -out bla.crt

使用它并在代码中设置这些值,它确实有效。

关于php - SoapFault 异常 [HTTP] 无法连接到主机 : With Local SSL Certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com