Kubernetes - Ingress HTTP 升级 HTTPS 配置解决方案(新版本v1.21+)

这篇具有很好参考价值的文章主要介绍了Kubernetes - Ingress HTTP 升级 HTTPS 配置解决方案(新版本v1.21+)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前我们讲解过 Kubernetes - Ingress HTTP 搭建解决方案,并分别提供了旧版本和新版本。如果连 HTTP 都没搞明白的可以先去过一下这两篇

  • Kubernetes - Ingress HTTP 负载搭建部署解决方案_放羊的牧码的博客-CSDN博客
  • Kubernetes - Ingress HTTP 负载搭建部署解决方案(新版本v1.21+)-CSDN博客

废话不多说,马上开始给大家带来今天如何从 HTTP 升级 HTTPS 的配置解决方案,特别是微信小程序等强制性要求用 HTTPS 调用必知必会~

全文提到的“域名”一词指的是用到的完整域名而不是顶级域名的意思,比如:你用到啊a.b.com,接下来所有的地方就是 a.b.com 而不是 b.com 以下阅读时注意,否则必掉坑;如果你用到就是 b.com 那就是 b.com 也不需要添油加醋~

开始教程(域名:api.app.com 为例)

1、检查将要配置的域名查看状态

  • 检测地址:SSL状态检测

Kubernetes - Ingress HTTP 升级 HTTPS 配置解决方案(新版本v1.21+),# Kubernetes,kubernetes,容器,云原生,http https,ssl 证书 校验,ingress,secret

  • Ps:因为还没配置到 K8S Ingress 上,所以肯定是不合规,等全部配置完成后,我们可以再回头验证

2、下载 HTTPS SSL 域名证书加密文件

在阿里云、腾讯云或者其他云上,直接下载即可(当然自己会生成也可以),我这边以腾讯云为例,如图所示,建议下载 Nginx 版本

Kubernetes - Ingress HTTP 升级 HTTPS 配置解决方案(新版本v1.21+),# Kubernetes,kubernetes,容器,云原生,http https,ssl 证书 校验,ingress,secret

这里有一个巨坑,就是我开头特别提醒的,就是在申请 SSL 证书的时候,需要填写域名,很多人以为填写顶级域名即可(除非业务是用到顶级域名) ,这里的原则是需要用到啥域名就填写完整的域名,除非有钱人直接购买泛域名证书,那我们另当别论,一般免费的只支持单域名噢~

Kubernetes - Ingress HTTP 升级 HTTPS 配置解决方案(新版本v1.21+),# Kubernetes,kubernetes,容器,云原生,http https,ssl 证书 校验,ingress,secret

  • 因为我们用的是免费证书,所以这里填写的是“api.app.com”,而不是“app.com” 

3、制作应用的 Secret

apiVersion: v1
kind: Secret
data:
  tls.crt: base64 encoded cert
  tls.key: base64 encoded key
metadata:
  name: app-ssl-secret
  namespace: default
type: kubernetes.io/tls
  • 照抄即可,关键是要记住这里的 app-ssl-secret 这个名字,等下应用的 Ingress 需要用到

4、将 Secret 文件和 SSL 证书文件合体

假设第 3 步的 Secret 文件叫“app-ssl-secret.yaml”,将这个文件放到 SSL 证书文件夹里面,为的是和证书里的文件在同目录下,便于 kubectl 生成应用 secret。执行成功后再配置应用 Ingress 即可

  • 注意:是『app-ssl-secret』不是『app-ssl-secret.yaml』 没有后缀的噢~
kubectl create secret tls app-ssl-secret --cert=api.app.com_bundle.crt --key=api.app.com.key

5、配置 Ingress

注意:配置的是应用级的 Ingress,而不是 Ingress-Controller 噢~

如果已经配置过应用 Ingress,只需要关注 tls 配置即可,否则整个拿来把你!secretName 就是刚刚说的名字,注意 tls 里面的缩进,否则配置可能不生效,最恶心的时也不报错,所以配置好后,最好回头看一下刚刚配置的是否还在,否则会消失掉,掉坑过

还有一个坑是新版本 Ingress yaml 文件格式,我以为 secretName 正确写法是 secret:name: xxx(因为在 rules 里的 serviceName 掉坑过,DDDD),没想到它这里还是旧版本写法——secretName: xxx

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-szqy
  namespace: default
  annotations: 
    kubernetes.io/ingress.class: "nginx"
spec:
  tls: # config SSL, if needn't remove it
    - hosts:
        - api.app.com
      secretName: app-ssl-secret
  rules:
  - host: api.app.com # 外部可以访问的域名
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: app-server # app service name
            port: 
              number: 38080 # app service port
# 如果没配置过的话,需要执行
kubectl create -f nginx-ingress-controller-app-service.yaml

6、校验

最后,我们在通过刚开始的检测地址校验下,突然间发现……成功了~

Kubernetes - Ingress HTTP 升级 HTTPS 配置解决方案(新版本v1.21+),# Kubernetes,kubernetes,容器,云原生,http https,ssl 证书 校验,ingress,secret文章来源地址https://www.toymoban.com/news/detail-735574.html

  • Ps:当然还有一种简单粗暴验证方案,就是通过 https 在浏览器里访问,如果是合规的就会出现一把安全锁,否则会提示不安全 

到了这里,关于Kubernetes - Ingress HTTP 升级 HTTPS 配置解决方案(新版本v1.21+)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • HTTPS被重定向到HTTP的解决方案

    项目使用的Spring框架,在Nginx中已配置HTTPS,通过HTTPS地址成功登录后,重定向到了HTTP地址。 ① Nginx配置中加入X-Forwarded-Proto; ② Tomcat配置中加入protocolHeader。 参考来自:

    2024年02月08日
    浏览(12)
  • 用Kubernetes(k8s)的ingress部署https应用

    用Kubernetes(k8s)的ingress部署https应用

    我之前有一片文章写的是用ingress暴露应用,这篇文章接着上一片文章继续讲使用ingress暴露https的应用。请先参考上一片文章将ingress先在Kubernetes集群当中安装上: ingress暴露应用文章地址:https://blog.csdn.net/m0_51510236/article/details/132536519 因为是暴露https,所以需要域名证书。分以

    2024年02月10日
    浏览(34)
  • 关于IIS安全设置http能访问https不能访问的解决方案

    关于IIS安全设置http能访问https不能访问的解决方案

    最近折腾IIS,发现网站的http能访问但是https不能访问。 我确认所有关于HTTPS的配置我都配置正确了,结果还是不能访问,一番折腾发现,服务器本身的防火墙和阿里云服务器的安全组规则不是一回事。改完防火墙也没有用,重要的是阿里云平台里改服务器的安全规则。 只需要

    2024年02月17日
    浏览(14)
  • k8s 对外服务之 ingress|ingress的对外暴露方式|ingress http,https代理|ingress nginx的认证,nginx重写

    k8s 对外服务之 ingress|ingress的对外暴露方式|ingress http,https代理|ingress nginx的认证,nginx重写

    service的作用体现在两个方面,对集群内部,它不断跟踪pod的变化,更新endpoint中对应pod的对象,提供了ip不断变化的pod的服务发现机制;对集群外部,他类似负载均衡器,可以在集群内外部对pod进行访问。 在Kubernetes中,Pod的IP地址和service的ClusterIP仅可以在集群网络内部使用,

    2024年02月10日
    浏览(16)
  • Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

    Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

    小编这里用的是godaddy购买的域名 服务器是aws acme.sh GitHub地址  https://github.com/acmesh-official/acme.sh 配合nginx进行部署,后面会贴上nginx.conf 我这里是多个域名用同一个证书    首先你得在自己服务器上面进行部署nginx,如果不知道怎么操作的,可以参考我这一篇博客,执行到这一

    2024年01月24日
    浏览(20)
  • ingress 400 Bad Request The plain HTTP request was sent to HTTPS port

    ingress 400 Bad Request The plain HTTP request was sent to HTTPS port

      问题现象         访问时返回400 Bad Request,并提示 The plain HTTP request was sent to HTTPS port 。 问题原因         Ingress Controller到后端Pod请求使用了默认的HTTP请求,但后端是HTTPS服务。。 解决方案         添加注释,让其使用https请求 官方配置:Annotations - NGINX Ingres

    2024年02月12日
    浏览(12)
  • 【kubernetes系列】k8s ingress配置websocket支持

    【kubernetes系列】k8s ingress配置websocket支持

    背景:公司的后端同事在代码调试过程中需要上传一个文件,调用的websocket接口 浏览器上传文件一直卡主,通过浏览器调试模式发现无法正常获取websocket的连接 websocket的接口访问可以通过wscat命令(需单独安装)测试。 浏览器访问报错如下: WebSocket connection to ‘ws://*******

    2024年02月06日
    浏览(17)
  • nginx处理cros跨域遇到的各种问题及解决方案,以及https配置和浏览器https不安全问题处理

    nginx处理cros跨域遇到的各种问题及解决方案,以及https配置和浏览器https不安全问题处理

    提示:本人在生产部署服务时遇到一系列跨域问题和https配置问题,特此做以下记录: 跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址,b页面为域名地址,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了

    2024年02月02日
    浏览(45)
  • 深入理解 Kubernetes Ingress:路由流量、负载均衡和安全性配置

    深入理解 Kubernetes Ingress:路由流量、负载均衡和安全性配置

    Kubernetes Ingress 是 Kubernetes 集群中外部流量管理的重要组件。它为用户提供了一种直观而强大的方式,通过定义规则和配置,来控制外部流量的路由和访问。 在 Kubernetes 中,Ingress 是一种 API 资源,用于定义外部流量如何进入集群内部。它允许我们基于主机名、路径和其他条件

    2024年01月19日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包