Я пытаюсь настроить Jenkins CI с помощью плагина Play, который использует авто-тестирование воспроизведения для запуска приложения.
Проблема в том, что у меня также есть 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
Я могу запустить приложение по протоколу SSL, когда бегунок воспроизведения выбирает местоположение хранилища ключей из записи в application.conf, но когда при автоматическом тестировании запускается браузер 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
Но этот файл не доступен через браузер, который запускается внутри автотеста, это firephoque, который является java-приложением, которое просматривает хранилище ключей по умолчанию - сделал еще несколько копаний и начал искать в
/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
но я не уверен, что делаю все правильно. Как я могу получить запуск автотеста для поиска хранилища ключей в явном месте?