4

play auto-test を使用してアプリを実行する Play プラグインで Jenkins CI をセットアップしようとしています。

問題は、要件として SSL も持っていることですが、firephoque Java テスト ブラウザには、使用する適切なキー/証明書がありません。

最初は OpenSSL を使用してキーと証明書のペアを作成しましたが、これらのキーをグローバルなデフォルトの Java キー ストア (おそらく $HOME/.keystore 内) にインポートする方法を理解する必要があります。

これらのリソースをさまざまな順序で試してみましたが、役に立ちませんでした。

私が始めた元のプレイ Google グループ スレッド: http://bit.ly/yZBezu

http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-using-java-keytool.html

http://www.agentbob.info/agentbob/79-AB.html

http://docs.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html

play runner が application.conf のエントリからキーストアの場所を取得すると、SSL 経由でアプリを実行できますが、自動テストで firephoque ブラウザーを実行すると、次のようになります。

The application does not start. There are errors: 
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
    PKIX path building failed:
    sun.security.provider.certpath.SunCertPathBuilderException:
        unable to find valid certification path to requested target

これを行うための簡潔な方法の方向性を指摘されたいと思っています.DERとPEMのビジョンとkeytoolの楽しみで私の脳は揚げられています.今、私はまっすぐに考えることができません.

play auto-test最終的な目標は、アプリを実行する他の方法と同様に、で検証される自己署名証明書です。

私の application.conf ファイルには、次のさまざまな組み合わせが含まれています。

# SSL - localhost default
# original way worked fine before auto-test came into play (so to speak :))
# certificate.key.file=conf/play_host.key
# certificate.file=conf/play_host.crt

# Keystore 
ssl.KeyManagerFactory.algorithm=SunX509
trustmanager.algorithm=JKS
keystore.password=passw0rd
keystore.file=conf/keystore.jks 
https.port=9443

UPDATE conf/keystore.jks の出力:

# keytool -list -keystore keystore.jks
Enter keystore password:  

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

localhost, Jan 31, 2012, PrivateKeyEntry, 
Certificate fingerprint (MD5): 36:EF:63:4E:53:23:18:22:13:8C:2C:DB:F1:72:2C:93

しかし、このファイルは、自動テスト内で実行されるブラウザーによってアクセスされません。これは、デフォルトのキーストアを調べる Java アプリである firephoque です。さらに掘り下げて、調べ始めました。

/Library/Java/Home/lib/security/

へのシンボリックリンク

/System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security

アプリがキーストアを見つけることができる場所を見つけるために。securityただし、上記のフォルダーに別のキーストアを配置しても、同じ結果が得られます。

更新 2:も試してみました

play auto-test -Xmx1g -Djavax.net.ssl.trustStore=/path/to/keystore.jks

しかし、私はそれを正しく行っているかどうかわかりません。play auto-test を起動して、明示的な場所でキーストアを探すにはどうすればよいですか?

4

2 に答える 2

2

エレガントではありませんが、Play 1.2.5 が間近に迫っているので、これを機能させるために 1.2.4 にパッチを当てることは大したことではありません。

https://github.com/playframework/play/commit/52f3c165cba1ea62e91a6c26ed62979b90da99c

デルトーニに感謝します。

于 2012-02-01T19:26:02.867 に答える
1

次のリンクの手順に従っていると仮定すると、キーストアには正しい情報が含まれているはずです。

http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-using-java-keytool.html

アプリがキーストアを取得しているかどうか知っていますか?
キーストア ファイルの場所へのフル パスを指定できますか (つまり、keystore.file=/home/some_user/conf/keystore.jks) ?
また、キーストアの出力を送っていただけますか?

于 2012-02-01T01:15:03.713 に答える