ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

【K8s教程】Nginx Ingress 控制器 TLS/HTTPS 说明

2021-08-12 12:05:50  阅读:212  来源: 互联网

标签:TLS tls Ingress ssl nginx 证书 Nginx HTTPS


参考:https://kubernetes.github.io/ingress-nginx/user-guide/tls/

TLS Secrets

每当我们引用 TLS Secrets时,我们指的是 PEM 编码的 X.509、RSA (2048) Secrets。

您可以使用以下命令生成自签名证书和私钥:

$ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout ${KEY_FILE} -out ${CERT_FILE} -subj "/CN=${HOST}/O=${HOST}"

然后通过以下方式在集群中创建秘密:

kubectl create secret tls ${CERT_NAME} --key ${KEY_FILE} --cert ${CERT_FILE}

由此产生的秘密将是类型 kubernetes.io/tls.

主机名

确保相关Ingress规则指定匹配的主机名。

..
    tls:
        - hosts:
            - www.example.com
          secretName: example-tls
..

默认 SSL 证书

NGINX 提供了将服务器配置为带有包罗万象的选项, server_name 用于与任何配置的服务器名称都不匹配的请求。 此配置开箱即用,适用于 HTTP 流量。 对于HTTPS,自然需要证书。

为此,入口控制器提供了标志 --default-ssl-certificate. 此标志所指的Secret包含访问通用服务器时要使用的默认证书。 如果未提供此标志,NGINX 将使用自签名证书。

例如,如果您有一个 TLS Secret 在default命名空间里面的foo-tls,在 nginx-controller部署里面添加 --default-ssl-certificate=default/foo-tls。

默认证书也将用于入口 tls:没有secretName选项的部分。

通过重定向强制执行服务器端 HTTPS

默认情况下,如果为该 Ingress 启用了 TLS,控制器会使用 308 永久重定向响应将 HTTP 客户端重定向到 HTTPS 端口 443。

这可以使用全局禁用 ssl-redirect: "false"在 NGINX 配置映射中 ,或每个 Ingress 中 nginx.ingress.kubernetes.io/ssl-redirect: "false"特定资源中的注释。

在集群外使用 SSL 卸载(例如 AWS ELB)时,即使没有可用的 TLS 证书,强制重定向到 HTTPS 也可能很有用。 这可以通过使用 nginx.ingress.kubernetes.io/force-ssl-redirect: "true"特定资源中的注释。

默认 TLS 版本和Ciphers

为了提供最安全的基线配置,nginx-ingress 默认仅使用 TLS 1.2 和 1.3,以及一组 安全的 TLS Secrets。

标签:TLS,tls,Ingress,ssl,nginx,证书,Nginx,HTTPS
来源: https://www.cnblogs.com/varden/p/15131954.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有