php – SoapFault异常[HTTP]无法连接到主机:使用本地SSL证书
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – SoapFault异常[HTTP]无法连接到主机:使用本地SSL证书,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1789字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试使用PHP Soap客户端连接到具有本地SSL文件的SOAP Web服务.
由于本地SSL证书无法正常使用PHP,我已经下载了WSDL文件并在本地保存.
现在,当我尝试连接到webservices时,我收到此错误:
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上做了一些阅读时,我发现你应该启用我安装的openssl并根据phpinfo()加载;
运行脚本时我做:
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文件拆分为两个单独的密钥和crt文件来解决问题:
openssl pkcs12 -in certname.pem -nocerts -out key.pem -nodes
openssl pkcs12 -in certname.pem -nokeys -out bla.crt
使用它并在代码中设置这些值,它确实有效.
内容总结
以上是互联网集市为您收集整理的php – SoapFault异常[HTTP]无法连接到主机:使用本地SSL证书全部内容,希望文章能够帮你解决php – SoapFault异常[HTTP]无法连接到主机:使用本地SSL证书所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。