2016-04-06 30 views
0

認証とルーティングのために中間層にApache/PHP/Symphonyが使用されています。要求がhttpで送信され、要求が認証されると、要求を行う人物が承認された後、httpsを介してバックエンドWebサービスが呼び出されます。バックエンドWebサービスは、自己署名証明書付きのhttpsを超えています。私はバックエンドのサービスに直接アクセスして、クロム・インスペクタを介して自分の証明書情報を見ることができます。 URLを介してバックエンドにリクエストを直接行うと、すべてが機能します。私は中間層を通過しようとすると、私は504で戻って応答を取得:コマンドを使用してJavaのKeyToolで作成した自己署名付き証明書を受け入れる方法Apache

/usr/local/jboss-eap-6.4/standalone/configuration/.keystore

{"code":504,"message":"A network communication error has occurred","error":{"code":77,"message":"SSL: can\u0027t load CA certificate file \/etc\/pki\/tls\/certs\/ca-bundle.crt"}}

を私がに証明書を生成し

keytool -genkey -keyalg RSA -alias jboss -keystore .keystore -storepass changeit -validity 9999 -keysize 2048

また、standalone.xmlを更新してth電子ファイル経由:

<ssl name="ssl" key-alias="jboss" password="changeit" certificate-key-file="/usr/local/jboss-eap-6.4/standalone/configuration/.keystore" protocol="TLSv1" verify-client="false"/>

私のdevのマシンがOSXです。

apacheやsymfonyが私のシステムに存在しないファイルである/etc/pki/tls/certs/ca-bundle.certのcertを探しているようです。 /etc/apache2/httpd.confで「pki」を検索しても結果はありません。

この証明書を信頼するには、apache/symfony2を設定するにはどうすればよいですか、この証明書をよりグローバルに信頼する方法はありますか?

答えて

0

ファイルシステムは、Linux上ではなく、OSX上での標準的なパスである/etc/pki/tls/certs/ca-bundle.certを探しているCA証明書バンドルを作成します。これを回避するには、ファイルを生成します。

keytoolを使用して.keystoreファイルを生成し、私のエイリアスにjbossを使用しました。 caバンドルファイルをビルドするには、それをpem形式にする必要があるので、-rfcをエクスポートステートメントに追加する必要があります。以下のコマンドです:

cd /usr/local/jboss-eap-6.4/standalone/configuration 
keytool -export -alias jboss -file local-sbx.dev.yourcompany.com.crt -keystore .keystore -rfc 

ファイルを持った後、あなたはファイルがそれにBEGIN CERTIFICATEEND CERTIFICATEものを持っていることを猫それをして確認することができます。そうであれば、それは正しいフォーマットです。

最後に、(お互いに添付さ本命のちょうど束である)の束のように行動して、Apacheを再起動するために証明書を移動し、ディレクトリ構造を作成します。

mkdir -p /etc/pki/tls/certs/ 
sudo cp local-sbx.dev.yourcompany.com.crt /etc/pki/tls/certs/ca-bundle.crt 
sudo apachectl restart 

注:これでしたSSL: can't load CA certificate file /etc/pki/tls/certs/ca-bundle.crtのサブ問題ですので、まだ問題がある場合は、PHPの設定を更新する必要があるかもしれません。指示はリンクにあります。

関連する問題