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

kubernetes tls (SSL) support? #378

Closed
jonaz opened this issue May 18, 2016 · 34 comments
Closed

kubernetes tls (SSL) support? #378

jonaz opened this issue May 18, 2016 · 34 comments
Milestone

Comments

@jonaz
Copy link
Contributor

jonaz commented May 18, 2016

Looks like something like this needs to be implemented in the kubernetes provider?

https://github.com/kubernetes/contrib/blob/master/ingress/controllers/nginx/controller.go#L748

@AlmogBaku
Copy link
Contributor

AlmogBaku commented May 19, 2016

We can't make it work also.. is this feature supported?

@emilevauge emilevauge added the kind/enhancement a new or improved feature. label May 19, 2016
@emilevauge
Copy link
Member

Not yet, we have been discussing on that, and for now, we decided that it was not a priority (as traefik can plug to an ACME backend). But it could be implemented in the futur :)

@jonaz
Copy link
Contributor Author

jonaz commented May 19, 2016

I can try to add SSL if no one else started work on it when #382 is merged so i can run traefik more easily locally.

@AlmogBaku
Copy link
Contributor

@jonaz are you working on this issue?

@jonaz
Copy link
Contributor Author

jonaz commented Jun 10, 2016

Nope, havent had the time yet.

@abourget
Copy link

abourget commented Sep 9, 2016

so are you guys saying there is no way Kubernetes can listen on port 443 and serve the tls cert defined in Kubernetes Ingress objects ??

@errm
Copy link
Contributor

errm commented Sep 10, 2016

Hi @abourget that is currently the case.

TLS could be set up manually if an entrypoint were defined in the Traefik config, or if letsencrypt is used. But we should add full support for doing stuff the k8s way.

@dghubble
Copy link

@emilevauge no pressure, but is the current state still not a priority?

@ghost
Copy link

ghost commented Dec 10, 2016

I just spend half a day trying to figure out why ssl throws "error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol" at me on GKE.

My issue was that 443 traffic was routed to 80, that's why SSL complained(= no SSL termination).

@andrejvanderzee
Copy link

What is the status on this? We need Ingress TLS support too.

Havent tried it myself yet, but there seems to be a workaround:
https://medium.com/@patrickeasters/using-traefik-with-tls-on-kubernetes-cb67fb43a948#.u2gt57be1

@andrejvanderzee
Copy link

andrejvanderzee commented Dec 17, 2016

The workaround by Patrick Eastern works like a charm!

Still we prefer native support to bypass the extra configuration. Hopefully Traefik will pick this up soon.

@roffe
Copy link

roffe commented Jan 18, 2017

@andrejvanderzee Don't know if it's helpfull to you but i solved my TLS problems with the following scenario:

kube-lego & nginx ingress kontroller for any external facing things, autoprovison of SSL certs via LE

and for internal traffic ( to be able to separate it at all ) i use traefik with

  annotations:
    kubernetes.io/tls-acme: "false"
    kubernetes.io/ingress.class: "traefik"

in the ingress manifest

But yes, native TLS support would be very much appreciated

@abourget
Copy link

abourget commented Jan 18, 2017 via email

@AlmogBaku
Copy link
Contributor

AlmogBaku commented Jan 19, 2017 via email

@roffe
Copy link

roffe commented Jan 19, 2017

@AlmogBaku i use kube-lego for automatic provisioning of Letsencrypt SSL certs.

Traefik is still lacking some in the automatization departement there as well as NGINX gives us higher throughput

@errm errm self-assigned this Feb 22, 2017
@ConorNevin
Copy link

@errm Are you still working on this? Is it OK if I pick it up?

@ldez ldez added the priority/P2 need to be fixed in the future label Jun 1, 2017
@ldez ldez added the area/tls label Jun 11, 2017
@gugahoi
Copy link

gugahoi commented Jun 29, 2017

This is a bummer 😢 , any updates?

@ldez ldez unassigned errm Aug 26, 2017
@zapman449
Copy link

I would love for this to be implemented. Could someone familiar with the Traefik code base sketch out what the solution should look like? I might be able to pick it up.

@yuvipanda
Copy link
Contributor

This could be an amazing two pronged implementation:

  1. Be able to read TLS secrets from Kubernetes Secret objects
  2. Be able to generate TLS secrets from let's encrypt, with Traefik's default ACME support

This replaces the nginx + kube-lego combination with just traefik, which is nice. As is, I can't actually use the ACME support in traefik in kubernetes, since it doesn't actually have anywhere to store the certificates. If we provision a volume and store it, most likely we can't have multiple copies of traefik running.

I'm slowly trying to become more familiar with the traefik code base, and might be able to take some of this on perhaps!

@Sturgelose
Copy link

@yuvipanda Just realized that this feature description is what I was requesting. I have a full description of the use case in the issue I created, but otherwise, maybe we can use this already existing issue.

I'm also checking how I could collaborate in developing this, as I'm also quite interested!

#2236

@gopenguin
Copy link
Contributor

As far as I can see this, this issue is about supporting an easy way to setup a tls ingress in kubernetes. But is acme realy necessary for this as the kubernetes ingress object already provides a way of specifing a tls cert (https://kubernetes.io/docs/api-reference/v1.8/#ingressspec-v1beta1-extensions)?

@mccormd
Copy link

mccormd commented Nov 20, 2017

Wow, just tried traefik and discovered no TLS support from standard kubernetes ingress objects and secrets. Well, that's gonna prevent any meaningful deployment - so it's back to nginx and its problematic reloading. I can't understand why this wouldn't be a critical missing feature for the traefik devs?

@gopenguin
Copy link
Contributor

I had some sparetime and tried a simple implementation. It wouldn't be that complicated but is this the right issue or should this case be handled in another one?

@roffe
Copy link

roffe commented Nov 20, 2017

ACME and LE is only usable if the services are publicly exposed. For any "internal" ingresses where the hostname isn't publicly reachable or even queryable, it would simply not work at all

@igoratencompass
Copy link

igoratencompass commented Dec 7, 2017

For me one thing that is missing for High Availability/Redundancy is ability to store the LE certs into K8S secrets that can be used as shared storage between multiple Traefik instances OR when the node Traefik was running on dies and the pod(s) get(s) created on different node (in even different AZ in AWS for example). For now this is only possible if shared storage is available in the cluster or a backend like consul etc.

@AlmogBaku
Copy link
Contributor

@igoratencompass take a look here https://blog.osones.com/en/kubernetes-traefik-and-lets-encrypt-at-scale.html

your comment isn't related to the issue

@igoratencompass
Copy link

It is related to a broader issue when using LE. I want to be able to share the backend certs between Traefik instances in k8s native way without using consul or shared storage. Which also relates to comments regarding nginx+kube-lego made in previous comments but maybe I missed something. It might be a crucial point when deciding between traefik and nginx.

@AlmogBaku
Copy link
Contributor

@igoratencompass its not related the this issue (and impossible)

@dtomcej
Copy link
Contributor

dtomcej commented Dec 8, 2017

@igoratencompass Please see proposal #2542. Give your feedback on the proposal if you think it is an important feature to be implemented.

@igoratencompass
Copy link

@AlmogBaku everything is possible
@dtomcej thanks i'll have a look

@The-Loeki
Copy link

#2439 has been merged w00t :)

@vkuznet
Copy link

vkuznet commented Mar 14, 2018

Hi, I'm new to traefik/ingress/kubernetes, but I think my issue is relevant to this ticket. I setup traefik with TLS and I have TLS in my ingress. I want to route HTTPs requests coming to traefik to HTTPs backend behind ingress. I used this blog post to set things up. But what I got at the end is HTTPs requests are redirected via HTTP to backend. May be I missed some configuration. Can someone confirm that it is doable and if it is addressed by this issue?

@ldez
Copy link
Member

ldez commented Mar 15, 2018

@vkuznet Thanks for your interest in Traefik !

Come to the Traefik community Slack

@dtomcej
Copy link
Contributor

dtomcej commented May 7, 2018

Traefik's kubernetes implementation now fully supports TLS, and secrets.

I am closing this issue.

If you encounter issues in the future, please open a new ticket.

@dtomcej dtomcej closed this as completed May 7, 2018
@ldez ldez added this to the 1.5 milestone May 7, 2018
@traefik traefik locked and limited conversation to collaborators Sep 1, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests