5.云原生安全之kubesphere应用网关配置域名TLS证书

news2024/9/29 17:30:59

文章目录

  • cloudflare配置
    • 使用cloudflare托管域名
    • 获取cloudflare API Token
    • 在cloudflare中配置SSL/TLS
  • kubesphere使用cert-manager申请cloudflare证书
    • 安装证书管理器
    • 创建Secret资源
    • 创建cluster-issuer.yaml
    • 创建cert.yaml
    • 申请证书已经查看申请状态
  • 部署harbor并配置ingress使用证书

将域名托管到cloudflare进行域名解析管理,使用cloudflare管理域名,免费为域名提供安全证书

cloudflare配置

使用cloudflare托管域名

  1. 登录https://dash.cloudflare.com/
  2. 添加站点image.png
  3. 填写站点域名

image.png

  1. 选择免费版

image.png

  1. 查看 Cloudflare 名称服务器

image.png

  1. 进入购买域名网站控制台,将域名服务器设置为Cloudflare 名称服务器

购买国外域名参考:国外域名购买交易网站汇总,小编在godaddy购买的域名。
image.png

获取cloudflare API Token

image.png
image.png
image.png

在cloudflare中配置SSL/TLS

  1. 修改加密模式,选择完全

image.png

  1. 选择源服务器创建证书

image.png
image.png

kubesphere使用cert-manager申请cloudflare证书

参考:Kubernetes Ingress 配置泛域名 TLS 证书

安装证书管理器

$ kubectl create ns cert-manager
$ helm uninstall cert-manager -n cert-manager
$ helm install cert-manager jetstack/cert-manager \
  -n cert-manager \
  --version v1.8.0 \
  --set installCRDs=true \
  --set prometheus.enabled=false \
  --set 'extraArgs={--dns01-recursive-nameservers-only,--dns01-recursive-nameservers=119.29.29.29:53\,8.8.8.8:53}'    

验证安装结果
image.png

创建Secret资源

kubectl create secret generic cloudflare-api-token-secret --from-literal=api-token=xxxxxxxxxxxxxx -n cert-manager
 
#把xxxxxxxxxxxxxx 替换为你的cloudflare上的token

上述创建方式翻译为资源文件Secret.yaml:

apiVersion: v1
kind: Secret
metadata:
  name: cloudflare-api-token-secret
  namespace: cert-manager
type: Opaque
stringData:
  # #把xxxxxxxxxxxxxx 替换为你的cloudflare上的token
  api-token: xxx 

创建资源kubectl apply -f Secret.yaml,查看资源
image.png

创建cluster-issuer.yaml

# 指定了使用的 Kubernetes API 版本和 cert-manager 的 API 组
apiVersion: cert-manager.io/v1
# 指定了这个 YAML 文件定义的 Kubernetes 对象类型为 ClusterIssuer,表示这是一个集群级别的证书颁发者。
kind: ClusterIssuer
# 部分包含了 Kubernetes 对象的元数据,包括名称 "letsencrypt" 和命名空间 "base"
metadata:
  name: letsencrypt
  namespace: base
# 部分定义了 ClusterIssuer 对象的规范
spec:
  # acme 部分定义了使用 ACME 协议进行证书颁发的配置信息
  acme:
    # 指定了 Let's Encrypt ACME 服务器的 URL
    server: https://acme-v02.api.letsencrypt.org/directory
    # 指定了与 Let's Encrypt 交互时使用的电子邮件地址
    email: 1293780497@qq.com
    # 指定了用于存储私钥的 Kubernetes Secret 对象的名称
    privateKeySecretRef:
      name: letsencrypt
    # 部分定义了用于验证域名所有权的 DNS 验证器,以确保证书颁发请求是由域名所有者发起的
    solvers:
    # 表示使用 DNS 验证器进行验证
    - dns01:
        # 表示使用 Cloudflare DNS 服务进行验证
        cloudflare:
          # 指定了与 Cloudflare 交互时使用的电子邮件地址
          email: 1293780497@qq.com
          apiTokenSecretRef:
            # 指定了用于访问 Cloudflare API 的 Kubernetes Secret 对象的名称和键
            name: cloudflare-api-token-secret
            key: api-token

这个 Kubernetes YAML 文件定义了一个名为 “letsencrypt” 的 ClusterIssuer 对象,用于配置 cert-manager 应用程序与 Let’s Encrypt 证书颁发机构进行交互,以自动为 Kubernetes 集群中的 Ingress 资源颁发 SSL/TLS 证书。

image.png

创建cert.yaml

# 指定了使用的 Kubernetes API 版本和 cert-manager 的 API 组
apiVersion: cert-manager.io/v1
# 指定了这个 YAML 文件定义的 Kubernetes 对象类型为 Certificate,表示这是一个证书对象
kind: Certificate
# 部分包含了 Kubernetes 对象的元数据
metadata:
  name: Certificate
  namespace: base
spec:
  # 指定了用于存储证书的 Kubernetes Secret 对象的名称
  secretName: remote-yxym-shop-tls
  # 指定了用于颁发证书的证书颁发者的名称和类型,这里指定了名为 "letsencrypt" 的 ClusterIssuer 对象
  issuerRef:
    name: letsencrypt
    kind: ClusterIssuer
  # 指定了证书颁发请求中包含的域名列表,这里只列出了一个名为 "xxx" 的域名。这些域名将用于验证证书颁发请求的域名所有权。
  dnsNames:
  - xxx

这个 Kubernetes YAML 文件定义了一个名为 “Certificate” 的 Certificate 对象,用于配置 cert-manager 应用程序获取 Let’s Encrypt 证书并将其存储在 Kubernetes 集群中的 Secret 对象中,以供 Ingress 资源使用。

申请证书已经查看申请状态

  1. 申请证书
kubectl apply -f cluster-issuer.yaml
kubectl apply -f cert.yaml
  1. 查看证书申请状态
kubectl get certificate -n <namespace>

image.png

  1. 如果状态Ready不是True需要查看原因
kubectl get challenge -n <namespace>
kubectl describe challenge challenge-xxxxxx -n <namespace>

部署harbor并配置ingress使用证书

  1. 进入应用商店

image.png

  1. 搜索harbor,一直下一步,直到应用设置

image.png

  1. 应用设置
    1. 修改ingress.hosts.core为自己的域名
    2. 修改externalURL为自己的域名
  2. 点击安装
  3. 配置ingress应用路由,选择https以及证书

image.png

  1. harbor访问测试

爱快中端口映射到了99端口,内网网关域名为192.168.31.11
image.png
image.png

  1. docker登录harbor测试


背景及现象:应用商店部署harbor,在浏览器通过https能登录,但是在linux中通过docker login提示错误443端口连接不上,部署情况:

  1. ingress通过端口映射暴露在公网上
  2. linux上docker loginx通过公网域名:公网映射端口,测试443连接不上

解决方案:在ks集群中修改hosts文件,将ingress绑定的网关ip添加上
测试docker登录harbor成功
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1363388.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【论文解读】基于神经辐射场NeRF的像素级交互式编辑(Seal-3D)

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/pdf/2307.15131 项目主页&#xff1a;https://windingwind.github.io/seal-3d/ 摘要&#xff1a; 随着隐式神经表征或神经辐射场&#xff08;NeRF&#xff09;的普及…

docker部署simpleDocker

1&#xff0c;安装docker&#xff0c;请参考 linux安装docker 2&#xff0c;安装docker-compose&#xff0c;请参考 Docker-Compose 3&#xff0c;安装simpleDocker 准备docker-compose.yml文件 version: 3 services:redis:container_name: redisimage: redis:latestweb:conta…

算法基础之二分与前缀和 day 6

文章目录 二分第一类第二类 前缀和原题链接题目描述输入格式输出格式数据范围输入样例&#xff1a;输出样例&#xff1a; 题目分析示例代码 二分 二分法是我们在高中数学就学习过的一种思想&#xff0c;他也是一种效率较高的查找算法&#xff0c;在编写代码的过程中&#xff0…

关于“Python”的核心知识点整理大全64

目录 20.2.15 确保项目的安全 settings.py 20.2.16 提交并推送修改 20.2.17 创建自定义错误页面 1. 创建自定义模板 500.html settings.py settings.py 注意 views.py 20.2.18 继续开发 往期快速传送门&#x1f446;&#xff08;在文章最后&#xff09;&#xff1a…

基于 Python+Neo4j+医药数据,构建了一个知识图谱的自动问答系统

知识图谱是目前自然语言处理的一个热门方向。目前知识图谱在各个领域全面开花&#xff0c;如教育、医疗、司法、金融等。 本项目立足医药领域&#xff0c;以垂直型医药网站为数据来源&#xff0c;以疾病为核心&#xff0c;构建起一个包含7类规模为4.4万的知识实体&#xff0c;…

16.顺子日期(14)

题目 public class Main {public static boolean isLegal(String date) {int l 0;int n date.length();while(l<(n-3)) {int t1 (int)Integer.valueOf(date.substring(l,l1));int t2 (int)Integer.valueOf(date.substring(l1,l2));int t3 (int)Integer.valueOf(date.s…

案例介绍|钡铼助力2023年全国职业院校技能大赛工业网络智能控制与维护赛项

如今&#xff0c;越来越多的企业开始意识到数字制造和工业物联网已经成为工业自动化中大规模生产的核心驱动力。这其中&#xff0c;工业网络作为基础设施&#xff0c;是实现工厂设备联网与数据采集&#xff0c;建设数字工厂的基础和前提&#xff0c;甚至成为关乎数字工厂能否真…

C++ 类的内存分布

文章目录 1 . 前言2 . 无继承&#xff0c;无虚函数3 . 无继承&#xff0c;有虚函数4 . 单一继承&#xff0c;无虚函数5 . 单一继承&#xff0c;有虚函数&#xff0c;虚析构6 . 多重继承7 . 菱形继承8 . 虚拟继承9 . 总结 【极客技术传送门】 : https://blog.csdn.net/Engineer_…

CentOS:docker容器日志清理

1.先查看磁盘空间 df -h 2.找到容器的containerId-json.log文件,并清理 find /var/lib/docker/containers/ -name *-json.log |xargs du -sh 3、可以根据需求清理对应日志也可以清理数据大的日志 $ cat /dev/null > /var/lib/docker/containers/dbaee0746cc6adad3768b4ef…

Java快速排序希尔排序归并排序

快速排序算法 快速排序的原理&#xff1a;选择一个关键值作为基准值。比基准值小的都在左边序列&#xff08;一般是无序的&#xff09;&#xff0c;比基准值大的都在右边&#xff08;一般是无序的&#xff09;。一般选择序列的第一个元素。 一次循环&#xff1a;从后往前比较&…

软件测试|什么是Python构造方法,构造方法如何使用?

构造方法&#xff08;Constructor&#xff09;是面向对象编程中的重要概念&#xff0c;它在创建对象时用于初始化对象的实例变量。在Python中&#xff0c;构造方法是通过特殊的名称__init__()来定义的。本文将介绍Python构造方法的基本概念、语法和用法。 什么是构造方法&…

Qt添加资源文件

ui->setupUi(this);//1. 使用本地文件&#xff1a;ui->actionasdasdas->setIcon(QIcon("本地绝对路径"));ui->actiona1->setIcon(QIcon("C:/Users/满满/Desktop/output/picture/1.jpg"));//2. 使用资源文件&#xff1a;ui->actionasdasd…

二叉树基础oj练习(单值二叉树、相同的树、二叉树的前序遍历)

讲了这么多数据结构相关的知识(可以看我的数据结构文章专栏): 抓紧刷题巩固一下了 目录 1.单值二叉树 题目描述 思路1 代码1 思路2 代码2 2.相同的树 题目描述 思路 代码 3.二叉树的前序遍历 代码 思路 1.单值二叉树 965. 单值二叉树 - 力扣&#xff08;LeetCod…

NVM NodeJs版本管理 通关宝典

NVM NodeJs版本管理 通关宝典&#x1f3f9; 文章目录 NVM NodeJs版本管理 通关宝典&#x1f3f9;一、NVM是什么二、开始使用NVM三、NVM 命令速查四、手动安装特定Node版本(Windows)&#x1f644;4.1 NVM for windows 运行机制4.2 手动安装流程 五、切换 NVM 下载镜像源六、常见…

docker拉取镜像提示 remote trust data does not exist for xxxxxx

1、How can I be sure that I am pulling a trusted image from docker 2、docker: you are not authorized to perform this operation: server returned 401. 以上两个问题可以试试以下解决办法 DOCKER_CONTENT_TRUSTfalse 本人是使用jenkins部署自己的项目到docker容器出现…

【技巧】IDEA 使用小技巧(三)

IDEA 使用小技巧&#xff08;三&#xff09; 配置目录Ctrl 鼠标方法缩小字体 配置目录 IDEA 在使用的过程中会在 C 盘的用户目录下写入相关配置&#xff0c;目录如下&#xff1a; "C:\Users\个人用户名\AppData\Local\JetBrains" "C:\Users\个人用户名\AppDa…

在线制作假期承诺书,电子手写签名确认,一键导出打印。

假期将至&#xff0c;为积极落实安全管理规定&#xff0c;单位通常需要下发安全承诺书进行签字确认。 易查分可以实现网上下发安全承诺书通知&#xff0c;让查询者进行签名确认&#xff0c;还可以生成PDF&#xff0c;方便打印一人一张的纸质版承诺书&#xff0c;本次就来介绍如…

C#编程-实现函数重载

考虑一个示例&#xff1a;您必须编写一个程序来实现计算器的功能。计算器执行各种运算&#xff0c;例如数字的加、减及乘等。可以对任何类型的数据执行这些运算。这是否意味着您必须定义单独的函数名&#xff08;如addInteger、addFloat和addDoublie&#xff09;对每种此类数字…

扫码支付是怎么工作的?

扫码支付是怎么工作的&#xff1f; 本文转自 公众号 ByteByteGo&#xff0c;如有侵权&#xff0c;请联系&#xff0c;立即删除 过去的几十年&#xff0c;支付技术发生了很大的改变。下图给我们显示了 POS 终端的进化。从一开始的纸钞收银机&#xff0c;到刷卡机&#xff0c;再到…

Python 教程 02:Python 编程环境的搭建与 IDE 的选择

目录 一、搭建 Python 环境 1.1 Python 官网 1.2 下载 Python 1.2.1 选择版本 1.2.2 选择平台 1.2.3 下载安装文件&#xff08;Windows & macOS&#xff09; 1.3 安装环境 1.3.1 Windows 平台 1.3.2 macOS 平台 1.3.3 Linux 平台 1.4 验证安装是否成功 二、选择…