如何在Openshift(cacerts)中将证书添加到Java CA证书库?

时间:2016-03-25 17:26:47

标签: java openshift keytool client-certificates jks

我多次使用此命令并始终有效:

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。此simlink具有0777权限,但源文件具有rw-r - r--或0644权限:

/etc/pki/java/cacerts

所以我的问题是:

1.-如何改变openshift中的permisssions?我试过了,我收到了一个错误。

2.-还有另一种方法可以将我的证书添加到openshift中的java cacerts文件中吗?

3.- Openshift提供了一些配置吗?

提前致谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

这是操作系统权限问题,而不是openshift,PKI或keytool问题。也许您应该使用root / administrator访问权限并修改文件权限(例如chmod),以便您可以访问它。