-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CA Certificates Out of Date and Not Working With LetsEncrypt #11973
Comments
Can confirm this as well, self-signed certificate works, Let's Encrypt wildcard certificate no more. |
renovatebot/docker-renovate#235 has been opened for this as well. That's probably the more correct repo for it, but I'll leave this open because the visibility is important due to this being a critically breaking issue. |
Can anybody check if a curl from that image works normally? |
Essentially this is our base image: https://github.com/containerbase/buildpack |
I was able to curl my GitLab with Let's Encyrpt without a problem. Edit: Using the current renovate docker image (renovate/renovate:latest) |
curl from the Logs
|
I can confirm that a curl works as well. Maybe node isn't using the standard ca-certificates package. |
nodejs/node#4175 Possibly relevant. |
No, it's not node, it the git checkout called by renovate. So can anybody test git clone from our image? |
Confirmed. A git clone from inside the image is failing. |
So this environment variable can be used as a temporary workaround? GIT_SSL_NO_VERIFY="1" |
Looks like that will work as a workaround, yep! |
I can confirm that this workaround works! :) |
Yes, but be aware it's not a safe workaround. |
So we need to find out, why the git integrated curllib works different than the default Ubuntu curl. 🤔 |
We're always on latest or near latest git version, and also on Ubuntu 20.04. It's very confusing. Is anyone able to test if these workaround instructions for Ubuntu 14.04 are somehow relevant? https://jay.gooby.org/2021/09/30/remove-the-dst-root-ca-x3-crt-from-ubuntu-14-04-lts |
I wonder why the gitlab-runner has no problems with the Git operations. |
Renovate's gitlab runner? Or GitLab's? |
GitLab's runner. Well I use the Alpine Linux runner, not the Ubuntu one. |
Are there any publicly exposed git hosts we can test and verify against once we have ideas? e.g. one which will answer "invalid cert" now but hopefully "invalid credentials" once the cert problem is fixed? |
https://try.gitea.io/ uses Letsencrypt as well |
Can confirm removing the DST Root fixes it. Tested on the base image renovate build on ( Before
GIT_CURL_VERBOSE=1 GIT_TRACE=1 git clone https://git.example.org/testrepo.git
19:11:25.269641 git.c:455 trace: built-in: git clone https://git.example.org/testrepo.git
Cloning into 'testrepo'...
19:11:25.274169 run-command.c:666 trace: run_command: git remote-https origin https://git.example.org/testrepo.git
19:11:25.274933 git.c:743 trace: exec: git-remote-https origin https://git.example.org/testrepo.git
19:11:25.274967 run-command.c:666 trace: run_command: git-remote-https origin https://git.example.org/testrepo.git
19:11:25.278939 http.c:756 == Info: Couldn't find host git.example.org in the .netrc file; using defaults
19:11:35.378886 http.c:756 == Info: Trying xx.xx.xx.xx:443...
19:11:35.378918 http.c:756 == Info: TCP_NODELAY set
19:11:35.411177 http.c:756 == Info: Connected to git.example.org (xx.xx.xx.xx) port 443 (#0)
19:11:35.428863 http.c:756 == Info: found 387 certificates in /etc/ssl/certs
19:11:35.428936 http.c:756 == Info: ALPN, offering h2
19:11:35.428961 http.c:756 == Info: ALPN, offering http/1.1
19:11:35.499862 http.c:756 == Info: SSL connection using TLS1.3 / ECDHE_RSA_AES_256_GCM_SHA384
19:11:35.500233 http.c:756 == Info: server certificate verification failed. CAfile: none CRLfile: none
19:11:35.500267 http.c:756 == Info: Closing connection 0
fatal: unable to access 'https://git.example.org/testrepo.git/': server certificate verification failed. CAfile: none CRLfile: none After
GIT_TRACE=1 git clone https://git.example.org/testrepo.git
19:14:19.837103 git.c:455 trace: built-in: git clone https://git.example.org/testrepo.git
Cloning into 'testrepo'...
19:14:19.841660 run-command.c:666 trace: run_command: git remote-https origin https://git.example.org/testrepo.git
19:14:19.842769 git.c:743 trace: exec: git-remote-https origin https://git.example.org/testrepo.git
19:14:19.842806 run-command.c:666 trace: run_command: git-remote-https origin https://git.example.org/testrepo.git
19:14:19.846685 http.c:756 == Info: Couldn't find host git.example.org in the .netrc file; using defaults
19:14:29.931415 http.c:756 == Info: Trying xx.xx.xx.xx:443...
19:14:29.931451 http.c:756 == Info: TCP_NODELAY set
19:14:29.965915 http.c:756 == Info: Connected to git.example.org (xx.xx.xx.xx) port 443 (#0)
19:14:29.983242 http.c:756 == Info: found 384 certificates in /etc/ssl/certs
19:14:29.983320 http.c:756 == Info: ALPN, offering h2
19:14:29.983345 http.c:756 == Info: ALPN, offering http/1.1
19:14:30.080925 http.c:756 == Info: SSL connection using TLS1.3 / ECDHE_RSA_AES_256_GCM_SHA384
19:14:30.081446 http.c:756 == Info: server certificate verification OK
19:14:30.081462 http.c:756 == Info: server certificate status verification SKIPPED
19:14:30.081516 http.c:756 == Info: common name: git.example.org (matched)
19:14:30.081550 http.c:756 == Info: server certificate expiration date OK
19:14:30.081578 http.c:756 == Info: server certificate activation date OK
19:14:30.081614 http.c:756 == Info: certificate public key: EC/ECDSA
19:14:30.081641 http.c:756 == Info: certificate version: #3
19:14:30.081654 http.c:756 == Info: subject: CN=git.example.org
19:14:30.081682 http.c:756 == Info: start date: Thu, 12 Aug 2021 21:32:31 GMT
19:14:30.081715 http.c:756 == Info: expire date: Wed, 10 Nov 2021 21:32:29 GMT
19:14:30.081757 http.c:756 == Info: issuer: C=US,O=Let's Encrypt,CN=R3
19:14:30.081788 http.c:756 == Info: ALPN, server accepted to use h2
19:14:30.081835 http.c:756 == Info: Using HTTP2, server supports multi-use
19:14:30.081866 http.c:756 == Info: Connection state changed (HTTP/2 confirmed)
19:14:30.081899 http.c:756 == Info: Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
19:14:30.082016 http.c:756 == Info: Using Stream ID: 1 (easy handle 0x55f46c6fcfd0) |
It could be because of the openssl version used:
From https://www.openssl.org/blog/blog/2021/09/13/LetsEncryptRootCertExpire/ |
Seems like openssl also suggests surgically removing the old cert |
running |
Ok, just on mobile yet. Will add the update to buildpack in around a hour. |
The issue should be fixed with next base image update in next two or three hours. Maybe you need to manually update to latest docker digest. |
latest images are working again |
How are you running Renovate?
Self-hosted
Please select which platform you are using if self-hosting.
Gitea
If you're self-hosting Renovate, tell us what version of Renovate you run.
27.21.0
Describe the bug
Since the expiration of the CA certificates used by LetsEncrypt globally this morning, Renovate is failing to connect to my Gitea instance. I have confirmed that my cert is valid and that its full CA chain is as well. Looks like the container image is using an old version of the CA certificate bundle.
Relevant debug logs
Logs
Have you created a minimal reproduction repository?
No reproduction repository
The text was updated successfully, but these errors were encountered: