kubernetes-6(续) Ingress TLS配置 ingress认证 ingress地址重写
1、ingress TLS 配置我们之前的设置不够安全,我应该要安全的访问443端口。创建证书和密钥创建secretvim ingress-https.yaml 编辑文件[root@server2 ingress]# cat ingress-https.yamlapiVersion: networking.k8s.io/v1beta1kind: Ingressmetadata:name: ingr
1、ingress TLS 配置
我们之前的设置不够安全,我应该要安全的访问443端口。
创建证书和密钥
创建secret
vim ingress-https.yaml 编辑文件
[root@server2 ingress]# cat ingress-https.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-myapp
spec:
tls:
- hosts:
- www1.westos.org
secretName: tls-secret
rules:
- host: www1.westos.org
http:
paths:
- path: /
backend:
serviceName: myapp-svc
servicePort: 80
查看ingress信息已配置好TLS
www1.westos.org被重定向为https://www1.westos.org
加入-k参数,成功访问加密网址
2、ingress认证
安装httpd-tools认证生成插件,创建认证用户和密钥,导入到k8s中的secret
编辑ingress.yaml文件
[root@server2 ingress]# cat ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-myapp
annotations:
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-secret: basic-auth
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - mj'
spec:
tls:
- hosts:
- www1.westos.org
secretName: tls-secret
rules:
- host: www1.westos.org
http:
paths:
- path: /
backend:
serviceName: myapp-svc
servicePort: 80
创建后查看详细信息,认证模块已经添加
登陆网页测试,访问www1.westos.org,会自动跳转到https://www1.westos.org,输入认证信息才能进入
3、ingress地址重写
我们想把默认的发布页地址重写为一个特定的网页,访问页面直接看到内容
编辑ingress.yaml文件
进入myapp镜像中的容器
可以查看,/hostname.html就是/etc/hostname的别名,二者就是一个东西,ingress.yaml文件中写/hostname.html,就等于写/etc/hostname,用来查看主机名
更新ingress,在主机上访问域名,可以看到www1.westos.org自动地址重写为www1.westos.org/hostname.html,改变了默认发布目录
现在既有TLS也有地址重写,谁先触发?
先地址重写,再TLS安全访问
www1.westos.org/westos/变为www1.westos.org,怎样做最快捷呢?
更新ingress.yaml文件
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-myapp
annotations:
#nginx.ingress.kubernetes.io/app-root: /hostname.html
nginx.ingress.kubernetes.io/rewrite-target: /$2 %抓取第二列输入内容
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-secret: basic-auth
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - mj'
spec:
tls:
- hosts:
- www1.westos.org
secretName: tls-secret
rules:
- host: www1.westos.org
http:
paths:
- path: /westos(/|$)(.*) ## 自动抓取westos后的内容,即忽略westos (/|$)表示有没有/都可以
backend:
serviceName: myapp-svc
servicePort: 80
应用ingress后,测试,访问www1.westos.org/westos/自动跳转到www1.westos.org;访问www1.westos.org/westos/hostname.html自动跳转到www1.westos.org/hostname.html,忽略westos
补充
HTTP与HTTPS的区别:
HTTP:超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
HTTPS:为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
简单讲HTTPS是HTTP的安全版
更多推荐
所有评论(0)