nginx - 在 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
我不知道应该在哪里进行更改。是否应该通过以下方式完成:
- 入口 YAML 文件
- 证书管理器
- GCP 上的负载均衡器
我尝试在 GCP 上创建 SSL 策略,但无法添加目标,因为它应该是 GCE 入口,而不是 Nginx(由于 GCE 中缺少必需的元数据,我必须使用 Nginx)我还尝试创建配置映射文件,但仍然启用它们。
解决方案
似乎默认的 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
推荐阅读
- java - 如何使用 Spring Data JPA 更新实体中的集合字段?
- javascript - 显示 JavaScript 对话框时 Unity WebGL 崩溃
- node.js - Sequelize :仅返回嵌套包含的多个结果之一
- php - 为什么“了解更多”链接未链接到该页面?
- javascript - 如何向网站提供虚假 GPU 信息
- android-studio - Android Studio Emulator 无法初始化 WHPX:功能未实现
- node.js - 我可以在 Express 的自定义错误处理程序中访问 req(如 req.body)吗?
- solr - 使用 SOLR 搜索存储在数据库中的 PDF 文件
- node.js - 如何安装nvm?我已经安装了 nvm,但我的 cmd 提示无法识别 nvm,这就是我得到的
- python-3.x - 我可以使用变量的名称而不是该变量的值吗?