2013-10-25 53 views
0

我剛開始使用Zend 2,它工作得很好(本地),但我無法通過https將數據傳遞給另一臺服務器。爲什麼不會zend 2 http驗證我的ssl證書?

當談到ssl證書時,我有些小心,我認爲這是問題所在。我有一個證書,私鑰和CA證書 - 這些都被用於在我們在我們的服務器上虛擬主機的一個域中的SSL證書的位置是: -

SSLCertificateFile /usr/local/psa/var/certificates/cert-#### 
SSLCACertificateFile /usr/local/psa/var/certificates/cert-#### 

在每一個例子中,我讀他們'/etc/ssl/certs/ca-bundle.pem'。我的問題是如何將它們粘在一起以創建zend 2需要的.pem文件?我試着用所有的----- BEGIN CERTIFICATE -----散列/鍵----- END CERTIFICATE -----創建一個.pem文件,並將其命名爲ca-bundle.pem但現在Apache拋出'無法設置驗證位置'的錯誤,我怎麼得到這個工作?這裏是我的適配器的代碼片段: -

$adapter = new Zend\Http\Client\Adapter\Socket(); 
$adapter->setStreamContext(array(
'ssl' => array(
    'verify_peer' => true, 
    'allow_self_signed' => false, 
    'cafile' => '/usr/local/psa/var/certificates/ca-bundle.pem', 
    'verify_depth' => 5, 
    'CN_match' => 'https://www.mydomain.co.uk' 
) 
)); 

$client->setAdapter($adapter); 

感謝,

回答

0

我收到了同樣的錯誤可讀:

解決方案作曲家。以下命令糾正了我的問題。

sudo update-ca-certificates 

我已經在此服務器上安裝了一個SSL證書,遵循給定的說明,它適用於https連接。只有在試圖安裝Composer時,我纔看到「無法設置驗證位置」錯誤。我希望這可以節省他人花費我研究時間的時間!