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 を起動して、明示的な場所でキーストアを探すにはどうすればよいですか?