它的验证SSL与soap直接相关


Is Validation SSL is directly related to the soap?

我有以下PHP代码与Soap WSDL server从客户端通信:

<?php
$url = "https://_SERVER_URL_:8086/erefill_bl/ETIServiceMerchant?wsdl";
$body = '<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:eref="http://erefill.nokia.com">
<soapenv:Header />
 <soapenv:Body>
.
.
.
.
.
 </eref:processRequest>
 </soapenv:Body>
</soapenv:Envelope>
'; //VAriable
    $headers = array(
        'Content-Type: text/xml; charset="utf-8"', 
        'Content-Length: '.strlen($body), 
        'Accept: text/xml', 
        'Cache-Control: no-cache', 
        'Pragma: no-cache', 
        'SOAPAction: "processRequest"'
    );
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 60); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36");
    // Stuff I have added
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $body);  
    var_dump(curl_exec($ch));

服务器管理员放置*.crt文件证书连接,但当我把它连接丢失!

curl_setopt($ch, CURLOPT_SSLCERT, realpath('./mycert.crt'));

OR当我使用转换的*.pem文件太。
只有在一种情况下,我建立连接时,我使用以下源代码:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
我收到这个回应

给定的SOAPAction processRequest不匹配操作。

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>The given SOAPAction processRequest does not match an operation.</faultstring></soap:Fault></soap:Body></soap:Envelope>

:
问题是FOR XML代码?

发生此错误是因为SSL证书未使用?
问题出在哪里?

这似乎不是SSL错误,因为消息与SOAP相关。

您是否连接到服务器管理员为SOAP服务指定的URL ?

processRequest是否在来自服务器的WSDL文件中?假设服务器正在使用相同的WSDL文件运行SOAP服务,以确保接口匹配?

您还应该能够在基于Linux的命令行中使用curl命令测试SSL,这将澄清是否存在任何SSL问题:

curl https://_SERVER_URL_:8086/erefill_bl/ETIServiceMerchant?wsdl --verbose --cert ./mycert.crt