我在我们的 CI 管道中使用 Docker In Docker for Jenkins Slaves。
我遇到了关于 SSL 的问题。问题是 maven 无法访问位于我们的 Nexus 存储库中的工件,它只是挂起。
我尝试使用 curl 进行调试。
在 DinD 容器内,一切都很好:
$ curl -I https://www.google.com
HTTP/1.1 200 OK
但是,如果我运行:
bash-4.3# curl -I --insecure https://nexus.eng.myco.com/nexus
curl: (35) Unknown SSL protocol error in connection to nexus.eng.myco.com:443`
它挂了很长时间,然后我收到此错误:
curl: (35) Unknown SSL protocol error in connection to nexus.eng.myco.com:443`
我可以将有问题的curl
语句向上运行(运行有问题的 docker 容器的 docker 容器),一切都很好。
我应该注意,如果我在笔记本电脑上运行有问题的 DinD 容器(虽然不是在 DinD 中),它没有问题。
使用调试信息更新:
bash-4.3# curl -v -I https://nexus.eng.myco.com/nexus/content/groups/this>
* Trying 54.164.137.27...
* Connected to nexus.eng.my.com (44.164.137.27) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
有任何想法吗?