2016-12-16 49 views
0

新證書爲「Symantec Class 3 EV SSL CA-G3」。客戶有CentOS。沒有控制權的服務器,它是第三方。當WDSL https地址在Firefox和Chrome中加載時,兩個瀏覽器都顯示「安全連接」,沒有問題。服務器更新證書後,使用WSDL服務的PHP安全連接中斷

的WSDL地址是https://palena.sii.cl/DTEWS/CrSeed.jws?WSDL

測試代碼:

$success = false; 
$attempts = 0; 

while (($success === false) && ($attempts < 10)) { 
    $attempts ++; 
    echo 'Attempt ' . $attempts . '<br>'; 

    try { 
     $wsdl = 'https://palena.sii.cl/DTEWS/CrSeed.jws?WSDL'; 
     $entity_loader_status_old = libxml_disable_entity_loader(false); 
     $SoapClient = new SoapClient($wsdl); 
     $seed = $SoapClient -> getSeed(); 
     libxml_disable_entity_loader($entity_loader_status_old); 
     $success = true; 
    } catch (Exception $Exception) { 
     echo $Exception -> getMessage() . '<br>'; 
    } 
} 

if ($success === true) { 
    echo 'SUCCESS'; 
} else { 
    echo 'ERROR'; 
} 

的連接是默認情況下的安全,因爲PHP版本是22年5月6日(超過5.5.X)。

+0

也許證書安裝失蹤某處。看起來像安全連接失敗。 – weirdo

+0

@weirdo確實安全連接失敗,如果我禁用它的安全工作。我需要一個安全的連接。如果缺少證書安裝,那麼當我在瀏覽器中加載WSDL時,爲什麼瀏覽器顯示「安全連接」? – mikl

+1

通常使用cURL建立連接的SOAP。默認情況下,使用嚴格模式的cURL將在安全連接有問題時失敗。如果您有權訪問服務器,請嘗試使用'curl https://palena.sii.cl/DTEWS/CrSeed.jws?WSDL'並查看輸出結果 – weirdo

回答

0

可能重複:OpenSSL: unable to verify the first certificate for Experian URL

爲了解決創建cafile.pem並連接所需的賽門鐵克證書(初級中間和根),如圖上面的可能重複的問題鏈接(參見spuder的回答)。

cafile.pem創建從spuder報價:

-----BEGIN CERTIFICATE----- 
(Your Primary SSL certificate: your_domain_name.crt) 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
(Your Intermediate certificate: DigiCertCA.crt) 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
(Your Root certificate: TrustedRoot.crt) 
-----END CERTIFICATE----- 
在PHP

然後使用下一個$options用於創建SoapClient對象:

$options = [ 
    'stream_context' => stream_context_create([ 
     'ssl' => [ 
      'cafile' => __DIR__ . '/cafile.pem', 
     ], 
    ]), 
]; 

$SoapClient = new SoapClient($wsdl, $options); 
+0

綁定根CA證書只會增加開銷。 – Narf

+0

我發佈的解決方案是一種解決方法,我真的無法控制服務器配置。我更喜歡一些開銷,否則我需要禁用對等驗證或根本不使用該服務。如果我無法修復服務器端,我還能做什麼? – mikl

+1

我以爲你在談論服務器,可能會倉促評論,但可能仍然正確的兩種方式,因爲客戶端和服務器都應該已經有了根。在客戶端開銷並不是什麼大不了的,只要它適合你。我仍然通知網站管理員。 – Narf

相關問題