qczrzl

ks-apiserver容器

路径:/etc/ssl/certs/ca.crt

docker容器

路径:/etc/docker/certs.d

cbit.hub.com中ca.crt

dockerhub.kubekey.local中ca.crt

dockerhub.kubesphere.local中ca.crt

以上截图分别是证书ca.crt,大佬帮忙给看看,提供下思路

    • qczrzlK零S

      zhangteng cbit.hub.com中ca.crt,用这个命令看下证书内容是否包含指定域名 openssl x509 -text -noout -in ca.crt

        qczrzl

        这应该是包含的,这是我自建harbor私有仓库生成的证书

        大佬是不是应该使用dockerhub.kubekey.local这个证书呀

          • qczrzlK零S

            zhangteng 你现在要连接的harbor配置的是哪个证书,你ks-apiserver应该就用这个证书吧

              qczrzl

              我连接harbor配置的是cbit.hub.com这个证书的,ks-apiserver容器里边的证书和cbit.hub.com这个证书一样,现在验证不通过

              大佬在帮忙提供点思路

              • qczrzlK零S

                coredns这里你应该要配置172.20.46.184 cbit.hub.com 吧,是不是指向的域名错了,再就是你把cbit.hub.com和172.20.46.184两个域都配置进harbor的证书试试

                  qczrzl

                  说明一点,外部harbor是在184服务器上搭建的,kubesphere是在60服务器上搭建的不知道配置字典中coredns是否配置正确

                  搭建harbor的时候生成证书的时候已经把cbit.hub.com 和服务器ip 已经配置进去了v3.txt

                  v3.txt文件

                  目前将域名改成cbit.hub.com还是验证失败,意思好像是说不能解析这个ip

                    • qczrzlK零S

                      • 已编辑

                      zhangteng 这里可能有误解,你用x509 v3 扩展文件 v3.txt 生成的证书,比如命令是

                      openssl x509 -req -sha512 -days 3650 \
                          -extfile v3.txt \
                          -CA ca.crt -CAkey ca.key -CAcreateserial \
                          -in cbit.hub.com.csr \
                          -out cbit.hub.com.crt

                      配置到harbor的应该是扩展后的证书

                      然后这里配置到ks-apiserver的应该是cbit.hub.com.crt 这个文件的内容,用openssl x509 -text -noout -in cbit.hub.com.crt

                      输出应该是

                      我之前没有对应的harbor自签证书环境,刚花时间搭了个,用的就是这个cbit.hub.com域名和我自签的证书,配置到ks-apiserver后验证通

                        qczrzl

                        使用 openssl x509 -text -noout -in cbit.hub.com.crt

                        我现在要修改的地方是不是就是以下地方

                          qczrzl

                          修改完内容还是这个错误。重启了ks-apiserver

                          容器日志

                          容器中证书

                          harbor184服务器配置文件

                          /opt/harbor/cert/cbit.hub.crt

                          zhangteng

                          4.x 支持跳过证书验证

                          3.x 可以通过添加 annotation 实现

                          secret.kubesphere.io/force-insecure: 'true'

                            hongming

                            这个配置加上需要重新启动服务么,是不是加上这个配置点击验证,提示验证通过么

                              • qczrzlK零S

                                zhangteng 我刚好像复现了你这个问题,我将harbor.yml配置文件中的hostname改为我harbor节点的ip 192.168.101.200,然后重新生成harbor配置并重启harbor,然后就报跟你一样的错

                                这个我再修改回正确的harbor.yml中的hostname 配置项,然后./prepare 重新生成配置,再重启harbor后就正常了

                                docker-compose down

                                docker-compose up -d

                                  qczrzl

                                  大佬目前harbor配置文件中hostname就是配置的域名

                                  我现在需要怎么修改呢,麻烦大佬给我哥提示吧,很困扰啊

                                    • qczrzlK零S

                                      zhangteng 额,配置没问题,你可以执行下 prepare脚本,然后再重启harbor试试,实在不行你留个微信吧,这样回复来回复去效率很低

                                        qczrzl

                                        大佬可以了,把harbor服务停止了执行了下prepare脚本,启动后在验证,就可以了,感谢大佬的支持,非常感谢

                                        qczrzl

                                        大佬镜像仓库验证成功为什么还是搜不到镜像呢

                                        镜像仓库

                                          qczrzl

                                          大佬我就是加上tag,也是搜不到镜像的,不知道为什么