簡體   English   中英

通過自簽名證書的PHP SoapClient,SOAP錯誤:解析WSDL:無法從'https://加載

[英]PHP SoapClient over selfsigned certificate, SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://

我瀏覽了網絡三天,但仍然無法解決我的問題。這就是為什么我尋求您的幫助:)

我嘗試使用自簽名證書通過https調用Web服務,並且出現以下錯誤:SOAP錯誤:解析WSDL:無法從'https://加載...

我的代碼:

$streamContext = stream_context_create(array(
    'ssl' => array(
        'verify_peer' => false,
        'allow_self_signed' => true
     )
));
$client = new SoapClient("https://DOMAIN/ws.php?wsdl", array(
    'trace' => true,
    'stream_context' => $streamContext
));
$client->method($params);

我試過了 :

  • 更改“ verify_peer”和“ allow_self_signed”選項的值;
  • 在stream_context數組中用“ https”替換“ ssl”鍵;
  • 本地加載WSDL文件,但出現以下錯誤:無法連接到主機(我的端點: https://DOMAIN/ws.php );
  • 清除我的客戶端緩存;
  • 使用Zend_Soap_Client和nusoap庫。

另外,我使用以下命令“ ping DOMAIN”和“ telnet DOMAIN 443”檢查了客戶端和服務器之間的連接,一切正常。

似乎“ stream_context”選項被忽略了,或者問題出在其他地方?! 這是一個PHP錯誤?

所有建議將不勝感激。 謝謝

我有一個非常類似的問題,我在流上下文中添加了'verify_peer_name' => false 所以...

$streamContext = stream_context_create(array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
     )
));

編者注 :禁用SSL驗證會帶來安全隱患。 如果沒有驗證SSL / HTTPS連接的真實性,惡意攻擊者可能會冒充受信任的終結點(例如GitHub或其他遠程Git主機),並且您將容易受到中間人攻擊 使用此解決方案之前,請確保您完全了解安全問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM