我在k8s集群上搭建了一个harbor,使用https协议,然后在对接Jenkins的Image Tag Parameter组件时遇到了一些问题。
报错信息
HTTP status: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
这个是因为Java SSL/TLS无法找到到请求目标的有效证书路径,解决方式是使用keytool
将证书文件导入到 Java 的信任库中
keytool介绍
keytool是Java平台的一个密钥和证书管理工具,它是Java开发工具包(JDK)的一部分
执行命令:
keytool -import -trustcacerts -alias harbor -file /opt/crt/ca.crt -keystore $JAVA_HOME/lib/security/cacerts
命令解释
报错信息
HTTP status: Unauthorized
这是因为Image Tag Parameter本身存在bug,因为我这边harbor的实际地址为https://core.harbor.domain:30108/ ,但是Image Tag Parameter组件在获取harbor的token的时候,请求的却是https://core.harbor.domain:443/
为了解决这个问题,我设置了NAT端口转发iptables -t nat -A PREROUTING -p tcp -d 192.168.11.166 --dport 443 -j DNAT --to-destination 192.168.11.166:30108
命令解释
最后问题就得以解决了
本文作者:枣子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!