我多次使用此命令并始终有效:
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提供了一些配置吗?
提前致谢!
答案 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),以便您可以访问它。