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日
    浏览(41)
  • 用Kubernetes(k8s)的ingress部署https应用

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

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

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

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

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

    2024年02月10日
    浏览(50)
  • 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日
    浏览(60)
  • 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日
    浏览(51)
  • 【kubernetes系列】k8s ingress配置websocket支持

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

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

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

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

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

    2024年02月02日
    浏览(64)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包