Openssl https上的SoapFault:无法连接到主机

Openssl https上的SoapFault:无法连接到主机,openssl,pem,ota,Openssl,Pem,Ota,我想将SITA Web服务(SWS)与PHP soap结合使用。(CentOS 6+PHP5.6.9) SWS是独立于平台的,基于OpenTravel联盟(OTA)XML标准 首先,我必须生成一个SSL DER文件并发送给他们,因为: 应使用HTTPS端口443上的SSL建立与SITA Web服务的所有连接和通信。客户端应用程序将使用SOAP over HTTPS访问web服务 WS-Security描述了对SOAP消息传递的增强,以通过消息完整性、消息机密性和单个消息身份验证提供保护质量。这些

我想将SITA Web服务(SWS)与PHP soap结合使用。(CentOS 6+PHP5.6.9) SWS是独立于平台的,基于OpenTravel联盟(OTA)XML标准

首先,我必须生成一个SSL DER文件并发送给他们,因为:

应使用HTTPS端口443上的SSL建立与SITA Web服务的所有连接和通信。客户端应用程序将使用SOAP over HTTPS访问web服务

WS-Security描述了对SOAP消息传递的增强,以通过消息完整性、消息机密性和单个消息身份验证提供保护质量。这些机制可用于适应各种安全模型和加密技术

要访问SITA Web以访问SITA Web服务,客户端需要创建密钥对PKI证书,向我们提供公共DER密钥,并使用私有PEM密钥对消息进行签名。证书可以来自证书颁发机构(CA)或自签名证书,但需要遵守X.509版本3标准

我使用这些命令生成DER文件,如他们所说:

openssl genrsa-out key.pem
openssl请求-新建-x509-key key.pem-out cert.der-365天-outform der
openssl请求-新建-key key.pem-out cert.csr-outform DER
现在,当我想登录SITA web服务时,出现以下错误:

[xdebug_message]=>(!)SoapFault:无法连接到主机

ini_set('soap.wsdl_cache_enabled',0);
ini_set('soap.wsdl_cache_ttl',0);
$pem = 'wsdl/cert.pem';
$defaultEndpoint = "https://sws.qa.sita.aero/sws/SignIn";
$uri = "https://sws.qa.sita.aerosws/sws";
$wsdl = 'wsdl/SITAReservationService.wsdl';
$xml = '<?xml version="1.0" encoding="utf-8" ?>
        <SITA_SignIn Version="0" Version="1" xmlns=http://www.opentravel.org/OTA/2003/05 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="wsdl/SITA_PingRQ.xsd" TransactionIdentifier="">
        <POS>
            <Source AirlineVendorID="xx" ERSP_UserID="xx/xx" AgentSine="xx/xx" PseudoCityCode="xxxx" AgentDutyCode="xx" ISOCountry="xx" AirportCode="IKA" />
        </POS>
    </SITA_SignIn>';
try{
    $client = new SoapClient($wsdl, array(
            'location' => $defaultEndpoint,
            'uri' => $uri,
            'trace'             => 1,
            'exceptions'        => true,
            'connection_timeout'=> 30,
            'ssl' => array(
                    'verify_peer' => false,
                    'allow_self_signed' => true,
                    'cafile'        => $pem,
                    'CN_match'      => 'https://sws.qa.sita.aero',
                    'ciphers'             => 'ALL'
            )
    ));
    var_dump($client->SignIn($xml));
 }   
 catch (SoapFault $fault) {
    var_dump($fault);
}  
ini\u集('soap.wsdl\u缓存启用',0);
ini\u集('soap.wsdl\u缓存\u ttl',0);
$pem='wsdl/cert.pem';
$defaultEndpoint=”https://sws.qa.sita.aero/sws/SignIn";
$uri=”https://sws.qa.sita.aerosws/sws";
$wsdl='wsdl/SITAReservationService.wsdl';
$xml='0
';
试一试{
$client=新的SoapClient($wsdl,数组(
“位置”=>$defaultEndpoint,
'uri'=>$uri,
“跟踪”=>1,
“例外情况”=>true,
“连接超时”=>30,
“ssl”=>数组(
“验证对等方”=>false,
“允许自签名”=>true,
“cafile”=>pem美元,
“CN_匹配”=>”https://sws.qa.sita.aero',
“密码”=>“全部”
)
));
变量转储($client->sign($xml));
}   
catch(SoapFault$fault){
var_dump($故障);
}  

如何连接到SITA web服务?

您的代码中有两个错误:

  • 您的URI不正确,应为“”
  • 您的请求错误,应该是
    SITA\u signnrq

  • 但我认为您仍然会收到来自SITA的“消息中没有签名!”错误。

    您的代码中有两个错误:

  • 您的URI不正确,应为“”
  • 您的请求错误,应该是
    SITA\u signnrq

  • 但我认为您仍然会收到SITA发出的“消息中没有签名!”错误。

    您好,我是SITA web服务的新手,您能帮助我如何使用PHP起诉SITA web服务吗?您好,我是SITA webservices的新手,你能帮助我如何在PHP中使用SITA web服务吗?你能帮助我如何开始在PHP中使用SITA吗?你能帮助我如何开始在PHP中使用SITA吗?