Ingress Nginx 添加 Basic Auth 安全认证
一、介绍
- htpasswd 是Apache 的Web服务器内置的工具,用于创建和更新储存用户名和用户基本认证的密码文件
- 一般用于页面可以没有安全认证页面,来做简单安全验证保证服务安全
1.1、httpd-tools 参数
|名称|介绍|
-c | 创建一个新的密码文件
-b | 在命令行中一并输入用户名和密码而不是根据提示输入密码
-D | 删除指定的用户
-n | 不更新密码文件,只将加密后的用户名密码输出到屏幕上
-p | 不对密码进行加密,采用明文的方式
-m | 采用MD5算法对密码进行加密(默认的加密方式)
-d | 采用CRYPT算法对密码进行加密
-s | 采用SHA算法对密码进行加密
-B | 采用bcrypt算法对密码进行加密(非常安全)
1.2、生成秘钥文件
# 安装 httpd-tools 服务
yum -y install httpd-tools
# 命令格式: 命令 指定生成密码文件 密码文件 用户名
# 输入2次密码
root@k8s-client:~$ htpasswd -c authfile aka
New password:
Re-type new password:
Adding password for user aka
# 查看生成好秘钥
root@k8s-client:~$ cat authfile
aka:$apr1$GBbFHqRa$/dKArgr/1eDEBJiXjdlPM/
1.3、创建 Secret 资源存储用户密码
kubectl 名称 -n 命名空间 create secret generic --from-file=文件名称
# 我这里放到 test 命名空间中
kubectl aka-basic-auth -n test create secret generic --from-file=authfile
1.4、创建 Ingress 资源
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/auth-secret: aka-basic-auth
nginx.ingress.kubernetes.io/auth-type: basic
labels:
app: test-quark
name: test-quark
namespace: test
spec:
rules:
- host: test.akiraka.net
http:
paths:
- backend:
service:
name: test-quark
port:
number: 8080
path: /
pathType: Prefix
1.5、终端验证
# 未加上安全秘钥 返回 401
root@k8s-client:~$ curl -I http://test.akiraka.net
HTTP/1.1 401 Unauthorized
Date: Mon, 02 Aug 2021 03:32:31 GMT
Content-Type: text/html
Content-Length: 172
Connection: keep-alive
WWW-Authenticate: Basic realm=""
Server: elb
# 加上刚刚生成好的秘钥验证 返回 200
root@k8s-client:~$ curl -I http://test.akiraka.net -u "aka:123"
HTTP/1.1 200
Date: Mon, 02 Aug 2021 03:33:06 GMT
Content-Type: text/html;charset=UTF-8
Content-Length: 3382
Connection: keep-alive
Content-Language: en
Server: elb
版权声明:
作者:Akiraka
链接:https://www.akiraka.net/kubernetes/1159.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
Ingress Nginx 添加 Basic Auth 安全认证
一、介绍
htpasswd 是Apache 的Web服务器内置的工具,用于创建和更新储存用户名和用户基本认证的密码文件
一般用于页面可以没有安全认证页面,来做简单安全验……
文章目录
关闭
共有 0 条评论