2017-03-14 67 views
1

我只是想用SHA2TLS1.2發送SOAP請求發送到SOAP服務器,但它顯示試圖創建SOAP客戶端時,提示以下錯誤如何使用SHA2和TLS版本發送SOAP請求1.2

錯誤

SOAP-ERROR: Parsing WSDL: Couldn't load from ' https://example.com/wsdl ' : failed to load external entity " https://example.com/wsdl "

代碼

$url = 'https://example.com/wsdl'; 

$client = new SoapClient(
      $url, 
      array(
       'ssl_method' => SOAP_SSL_METHOD_TLS, 
       'cache_wsdl' => WSDL_CACHE_NONE, 
       'stream_context'=> stream_context_create(
       array(
        'ssl'=> array(
        'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, 
        'ciphers' => 'SHA2', 
        'verify_peer'=>false, 
        'verify_peer_name'=>false, 
        'allow_self_signed' => true //can fiddle with this one. 
       ) 
       ) 
      ) 
      ) 
     ); 

回答

2

通過提供ciphars加入SHA256解決。實際上SHA2有4種哈希函數:SHA224,SHA256,SHA384SHA512

變化

'ciphers' => 'SHA256', 

回答自己的問題對我來說是有點古怪,但它可以幫助開發者等。

0

你有沒有放置在SSL數組中的證書?

'cafile' => $certFile 
+0

我想使用'TLS1.2'而不是'SSL' –