0

Zend 2 を使い始めたばかりで、(ローカルで) うまく動作しますが、https 経由で別のサーバーにデータを渡すことができません。

SSL証明書に関しては、私は少し初心者であり、これが問題の原因だと思います。CERT、秘密鍵、および CA 証明書を取得しました。これらは、サーバー上の仮想ホスト ドメインの 1 つで 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);

ありがとう、

ジョー

4

2 に答える 2

0

まずこれですが、あなたはすでにそれを正しく行っていると思います: How to get .pem file from .key and .crt files?

エラーUnable to set verify locationsは、Apache がキーを見つけられない、または読み取れないためです。

解決:

  1. パスが正しいことを確認します
  2. pemファイルがwww-user Apacheが実行できることを確認してください
于 2014-05-20T11:41:35.357 に答える