Skip to content
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

Very long timeouts on certificate fetches #1669

Closed
lorenz opened this issue Nov 8, 2017 · 5 comments · Fixed by #1699
Closed

Very long timeouts on certificate fetches #1669

lorenz opened this issue Nov 8, 2017 · 5 comments · Fixed by #1699

Comments

@lorenz
Copy link

lorenz commented Nov 8, 2017

NGINX Ingress controller version: beta-15

Kubernetes version (use kubectl version): 1.7

What happened:
ingress-nginx goes into CrashLoopBackoff if the certificate provider is down or the internet can't be reached:
ssl.go:185] unexpected error generating SSL certificate with full chain: Get http://cert.int-x3.letsencrypt.org/: dial tcp: i/o timeout

This connection has a 30s timeout, which is longer than the 10s Kubernetes waits for the pod to become healthy

What you expected to happen:
As far as I know the kube-lego addon provides full chains anyways, so this request should not even happen.

How to reproduce it (as minimally and precisely as possible):
Use any CA who'se servers are down and start ingress-nginx

@lorenz
Copy link
Author

lorenz commented Nov 8, 2017

Was actually not the CA being down but a routing protocol problem, but still could've been caused by that.

@rikatz
Copy link
Contributor

rikatz commented Nov 9, 2017

This happens here . I had the same issue here, caused by blocked egress internet connections. Still this should be solved, probably inside the certUtil package (and not Ingress)

@lorenz
Copy link
Author

lorenz commented Nov 9, 2017

Yes, I have seen that code snippet as well. I think there are two issues here:

  1. certutil downloads certificates when it shouldn't (I looked into the cert secrets, they are full-chain)
  2. Should the ingress itself do any downloading? I think all this should really be handled by a separate stateless service which is responsible for filling in certificate chains (this would also be optional for people who don't want that or don't care).

@aledbf
Copy link
Member

aledbf commented Nov 13, 2017

@lorenz @rikatz please test the image quay.io/aledbf/nginx-ingress-controller:0.279

@aledbf
Copy link
Member

aledbf commented Nov 13, 2017

  1. certutil downloads certificates when it shouldn't (I looked into the cert secrets, they are full-chain)

This is done in asynchronously now.

  1. Should the ingress itself do any downloading?

It depends. Secrets should be created with all the intermediate certificates. This is just one of the ways to fix any issue in order to enable OCSP in nginx.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants