сохраните их в пакете сборки и заберите их оттуда.
Если это вообще возможно, не делайте этого. Это требует от вас форка пакета сборки, и это плохо. Это создает нагрузку на обслуживание и замедляет вашу способность развертывать обновления и исправления безопасности для приложений, работающих на Cloud Foundry.
Но есть некоторые сертификаты, которые являются частью cacert и должны быть выбраны из JAVA_OPTS на PCF в качестве переменной среды, например -Djavax.net.ssl.trustStore =
Я не уверен, почему вы будете вынуждены идти по этому пути. Параметр -Djavax.net.ssl.trustStore
просто устанавливает хранилище доверия по умолчанию для JVM. Иногда это может быть удобно, но имеет свои недостатки.
Когда вам нужно доверять сертификатам, которые не подписаны известным CA, я бы посоветовал вам создать собственное хранилище доверенных сертификатов для конкретного приложения, а не добавлять дополнительные сертификаты в хранилище доверенных сертификатов JVM по умолчанию.
Ваше приложение будет более переносимым, если оно не зависит от системных настроек, таких как изменение хранилища доверия по умолчанию. Изменение хранилища доверия по умолчанию также проблематично, поскольку все, что работает в вашей JVM, использует его. Обычно это нормально, если вы просто добавляете в хранилище доверенных сертификатов по умолчанию, но если вы пытаетесь удалить из него, вы можете в конечном итоге нарушить другой код. Кроме того, если вы используете свое собственное хранилище доверенных сертификатов, вы можете включить в приложение только минимальное количество сертификатов, требуемых вашим приложением или даже конкретной службой (поскольку таким образом вы можете использовать несколько хранилищ доверенных сертификатов).
Я не знаю, какой HTTP-клиент вы используете, но есть хороший пример этого с HTTPClient здесь . См. Custom SSL context
пример.
Если оставить это в стороне, если вы действительно хотите настроить хранилище доверия по умолчанию для JVM, выполняющей ваше приложение в Cloud Foundry, вам просто нужно изменить переменную среды JAVA_OPTS
для вашего приложения и перезапуска.
Ex:
cf set-env my-cool-app JAVA_OPTS '-Djavax.net.ssl.trustStore=path/to/my/new/default-truststore.jks'
Я полагаю, что вы можете использовать относительный путь к вашему хранилищу доверия, например, если вы связываете его со своим приложением. Если нет, /home/vcap/app
- это путь к корню вашего файла JAR / WAR, так что вы можете вставить его, если вам нужен полный путь. Это должен быть локальный путь в контейнере, хотя я не верю, что JVM поддерживает удаленные пути / URL.
Jdk -> 1.7xx
Вам действительно нужно обновить:)