首页 > 解决方案 > 在 GKE 上的 nginx-ingress 中禁用 TLS 1.0 和 TLS 1.1

问题描述

我想从我的网站禁用 TLS 1.0 和 TLS 1.1。

该网站托管在谷歌云平台Kubernetes引擎上。

我使用了这个 Nginx 入口https://cloud.google.com/community/tutorials/nginx-ingress-gke

对于 SSL 证书,我使用了本教程中的 cert-manager https://youtu.be/hoLUigg4V18

我不知道应该在哪里进行更改。是否应该通过以下方式完成:

我尝试在 GCP 上创建 SSL 策略,但无法添加目标,因为它应该是 GCE 入口,而不是 Nginx(由于 GCE 中缺少必需的元数据,我必须使用 Nginx)我还尝试创建配置映射文件,但仍然启用它们。

标签: nginxsslgoogle-kubernetes-enginenginx-ingresscert-manager

解决方案


似乎默认的 nginx-ingress 默认只使用 TLS 1.2 和 1.3,请查看有关Nginx Ingress的文档。

您可以使用 openssl 进行验证,如下所示:

要验证是否禁用了 TLSv1.0,请运行以下命令:

echo|openssl s_client -servername  -connect :443 -tls1 2>&1 | grep -c 'ssl handshake failure'

要验证是否禁用了 TLSv1.1,请运行以下命令:

echo|openssl s_client -servername  -connect :443 -tls1_1 2>&1 | grep -c 'ssl handshake failure'

返回大于 0 的整数表示禁用 TLSv1.0 或 TLSv1.1

通过 OpenSSL 验证:启用 TLSv1.2

echo|openssl s_client -servername  -connect :443 -tls1_2 2>&1 | grep -c 'ssl handshake failure'

返回整数 0 表示启用 TLSv1.2

确定通过 Nmap 启用了哪些 TLS 版本和密码

您可以使用以下命令确定为每个主机名启用了哪些 TLS 版本和密码:

nmap -sV --script ssl-enum-ciphers -p 443 

另一个工具位于https://github.com/drwetter/testssl.sh


推荐阅读