Please describe the problem you have
Some applications like Elasticsearch have a FIPS mode that forces the application to use FIPS-compliant encryption mechanisms (https://www.elastic.co/guide/en/elasticsearch/reference/current/fips-140-compliance.html). I didn't see here (https://projectcontour.io/guides/tls/) if it is possible to allow something similar to Contour. Looking a bit further it seems that Envoy does allow it (https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/security/ssl#fips-140-2), could you confirm if that would be enough or it is necessary to enable anything else on the Contour side.
If you bring a FIPS-compliant Envoy image to your deployment, then everything should work fine. The only potential issue that I can think of is whether the cipher suite that Contour configures is allowed in FIPS (I suspect that it should be OK).
I'm not sure (I'm no FIPS expert), but it looks like in order to be able to have a FIPS-compliant Contour install, you need three things:
getenvoy to do it (see tetratelabs/getenvoy-package#20).dev.boringcrypto Go branch, which has a Docker build image availabel at goboring/golang.To wrap this up, we will probably need a guide in the website guides section for what to do to end up with a FIPS-compliant Contour, and possibly have something in the Operator eventually.
I can write up a guide to start with, depending on how that works we can assess if we want to provide more resources (scripts, docker images, etc.)
Or @youngnick if you want go for it since you self assigned!
No, I'm happy for you to take this one @sunjayBhatia!
Started work on this but will not be done for 1.13 so moving to 1.14
See https://github.com/projectcontour/contour/pull/3446 for a guide on Contour and FIPS, please give feedback if you have it!
Most helpful comment
I'm not sure (I'm no FIPS expert), but it looks like in order to be able to have a FIPS-compliant Contour install, you need three things:
getenvoyto do it (see tetratelabs/getenvoy-package#20).dev.boringcryptoGo branch, which has a Docker build image availabel atgoboring/golang.To wrap this up, we will probably need a guide in the website guides section for what to do to end up with a FIPS-compliant Contour, and possibly have something in the Operator eventually.