非法选项:gitlab-ci中带有gradle:jdk8的keytool的-cacerts

时间:2019-10-30 13:47:55

标签: java continuous-integration gitlab-ci keytool

我在gitlab-ci.yml中使用下一个配置:

image: gradle:jdk11
stages:
  - build
  - publish
before_script:
  - wget -P /tmp http://www.some.com/SOME.crt
 - keytool -importcert -trustcacerts -file /tmp/SOME.crt -cacerts -alias "Some" -storepass changeit -noprompt

一切正常。但是我需要将Java版本更改为8。我将配置编辑为image: gradle:jdk8并收到错误消息:

....
Illegal option: -cacerts

我对gitlab配置的了解很差。我如何解决使用gradle:jdk8的配置问题?

2 个答案:

答案 0 :(得分:1)

keytool -importcert命令的确有一个-cacerts选项,但我从未见过它与-trustcacerts结合使用。

文档中确实提到:

-cacerts cacerts
     

在cacerts密钥库上操作。
  此选项等效于“ -keystore path_to_cacerts -storetype type_of_cacerts”。

     

如果将-keystore-storetype选项与-cacerts选项一起使用,将报告错误。

答案 1 :(得分:1)

我在将'keytool import crt to jks'here进行谷歌搜索时找到了解决方法:

keytool -importcert -file my.cert.location/my.cert.crt -storepass changeit -keystore $JAVA_HOME/jre/lib/security/cacerts -alias mycert1

-keystore必须是默认的Java密钥库位置– $ JAVA_HOME / jre / lib / security / cacerts。它适用于gradle:jdk8。我可以使用这些keytool选项进行构建和发布。此命令将.crt证书添加到默认的Java证书存储中。