Как добавить сертификат в хранилище сертификатов ЦС Java в Openshift (cacerts)?

Я использую эту команду несколько раз и всегда работает:

cd ../../jdk/jre/lib/security
keytool -import -trustcacerts -alias my.alias -file /../../myCert.crt -keystore cacerts

Теперь в openshift с jboss-as 7:

cd /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.95/jre/lib/security
keytool -import -trustcacerts -alias my.alias -file /../.../myCert.crt -keystore cacerts

Журнал ошибок:

Enter keystore password:
Owner: CN=...
Issuer: CN=...
Serial number:....
...
Trust this certificate? [no]:  yes
Certificate was added to keystore
keytool error: java.io.FileNotFoundException: cacerts (Permission denied)

Просматривая архивы, я вижу, что файл cacerts - это симлинк. Эта simlink имеет разрешения 0777, но исходный файл имеет разрешения rw-r - r- или 0644:

/etc/pki/java/cacerts

Итак, мои вопросы:

1.- Как я могу изменить разрешения в openshift? Я попробовал и получаю сообщение об ошибке.

2.- Есть ли другой способ добавить мой сертификат в файл java cacerts в openshift?

3.- Openshift предлагает некоторую конфигурацию для этого?

Заранее спасибо!


person JRichardsz    schedule 25.03.2016    source источник
comment
Удалось ли вам решить эту проблему?   -  person mad_fox    schedule 02.11.2016


Ответы (2)


Я столкнулся с этим вопросом и нашел решение

Сначала я скопировал хранилище ключей по умолчанию, а потом добавил собственный сертификат:

    RUN mkdir -p source/configuration/security && \
        keytool --importkeystore -noprompt \
        -srckeystore /etc/pki/ca-trust/extracted/java/cacerts \
        -srcstorepass changeit \
        -destkeystore source/configuration/security/<custom>.jks \
        -deststorepass changeit

    ADD certificates /

    RUN keytool -import -v -file /certs/<my-certficate> \
        -keystore source/configuration/security/<custom>.jks \
        -noprompt -storepass changeit
person Jonas Janz    schedule 19.05.2017

Это проблема с разрешениями операционной системы, а не проблема openshift, PKI или keytool. Возможно, вам следует использовать доступ root / администратора и изменить права доступа к файлу (например, chmod), чтобы вы могли получить к нему доступ.

person KyleM    schedule 26.03.2016
comment
Openshift теперь разрешает доступ суперпользователя: stackoverflow.com/a/31322169/3957754. - person JRichardsz; 28.03.2016
comment
@JRichardsz Хорошо, затем создайте новое хранилище ключей cacerts на другом компьютере и скопируйте его на сервер openshift. Настройте серверный продукт (например, веб-сервер) на использование нового хранилища ключей cacerts в качестве хранилища доверенных сертификатов. Это зависит от продукта, поэтому это лучшее направление, которое я могу вам дать. Если вы не можете использовать SCP другой файл cacerts или изменить существующий, я не вижу способа сделать это. \ - person KyleM; 28.03.2016
comment
спасибо @KyleM. Я попробую!! Подскажу результат. С Уважением. - person JRichardsz; 28.03.2016