最近遇到了通过 Jenkins agent 无法上传 artifacts 到 Artifactory 的情况,具体错误如下:
[2023-09-11T08:21:53.385Z] Executing command: /bin/sh -c git log --pretty=format:%s -1 |
这个问题产生的原因是通过 HTTPS 来上传文件的时候没有通过 Java 的安全认证。解决这个问题的办法就是重新生成认证文件,然后导入即可,具体的步骤如下。
生成安全认证(Security Certificate)文件
步骤如下:
- 首先生成通过浏览器打开的你的 Artifactory 网址
- 在网址的左侧应该有一个锁的图标,点击 Connection is secure -》Certificate is valid -》Details -》 Export
- 选择 DER-encoded binary, single certificate (*.der) 生成认证文件
比如我生成的安全认证文件的名字叫:artifactory.mycompany.der
(名字可以任意起,只要后缀名不变即可)
通过命令行导入安全认证
登录到那台有问题的 Solaris agent,上传 artifactory.mycompany.der
到指定目录下,然后找到 cacerts 的路径,执行如下命令:
root@mysolaris:/# keytool -import -alias example -keystore /usr/java/jre/lib/security/cacerts -file /tmp/artifactory.mycompany.der |
这时候会提示你输入密码,默认密码为 changeit
,输入即可。然后重启你的 JVM 或是 VM。等再次通过该 Agent 上传 artifacts,一切恢复正常。
转载本站文章请注明作者和出处,请勿用于任何商业用途。欢迎关注公众号「DevOps攻城狮」