k8s/rancher 导入和使用 p12 或 pem 等证书

news/2025/3/14 16:37:00/文章来源:https://www.cnblogs.com/max27149/p/18772359

问题情景

将业务从 swarm迁移至k8s的过程中,遇到了一点证书导出/导入/挂载的问题,已经解决。

容器的证书目录结构

保持原来证书目录结构不变,避免了研发的代码改动。

# tree ./
./
├── 123
│   └── apiclient_cert.p12
├── 456apiclient_cert.p12
└── apiclient_cert.p12

注意
有个坑,存在两个同名证书文件:apiclient_cert.p12

在后续的证书导入过程中,要显式地区分开

swarm证书导出

证书原文件丢失或者难找到的情况下,可以从 swarm 容器内 copy 出来。

  • 直接用 docker cp 是无法复制 .p12.pem 等后缀的证书的
  • 可以先再容器内 cp成其他后缀(比如.txt),再docker cp 就可以了

证书导入k8s

  1. 将导出的.txt证书后缀改回 .p12
    • 不改也可以,但是在导入时还是要指定为 xxx.p12=xxx.txt
  2. md5sum验证一下内容是否一致
  3. kubectl create secret 导入证书为密文
kubectl -n swarm-migrate create secret generic \
--from-file="\
apiclient_cert.p12,\
456apiclient_cert.p12,\
123apiclient_cert.p12=123/apiclient_cert.p12" \
mycerts

说明:

  • --from-file=可以指定多个证书文件,格式 keyname=filepath
  • keyname指定命名为xxx.p12是为了方便挂载密文卷
  • 注意区别开不同目录级别的同名文件

证书挂载

登录 rancher,在集群 --> 项目 --> 密文页面可以看到刚创建好的mycerts

image

再编辑 工作负载,将证书挂载到指定目录下。

image

注意:

  • 123apiclient_cert.p12 这个文件相对路径123/apiclient_cert.p12
  • 相对路径 指的是,相对于容器路径的文件位置。

验证挂载

在 工作负载 -- Pods -- 执行命令行

  • 进入容器验证证书的目录结构:
/opt/xxxpay/certs # ls -l
total 0
lrwxrwxrwx    1 root     root            17 Mar 14 15:43 123 -> ..data/123
lrwxrwxrwx    1 root     root            35 Mar 14 15:43 456apiclient_cert.p12 -> ..data/456apiclient_cert.p12
lrwxrwxrwx    1 root     root            25 Mar 14 15:43 apiclient_cert.p12 -> ..data/apiclient_cert.p12
/opt/xxxpay/certs # ls -l 123/
total 4
-r--------    1 root     root          2876 Mar 14 15:43 apiclient_cert.p12
  • 用 md5sum 等工具校验文件内容。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洛谷题单指南-图论之树-P5588 小猪佩奇爬树

原题链接:https://www.luogu.com.cn/problem/P5588 题意解读:树中每个节点有一种颜色,计算每种颜色所有节点能用一条路径穿过的路径数。 解题思路: 直接枚举所有路径显然不可取,需要分情况来讨论,用乘法原理来解决。 首先,要通过dfs预处理出一些信息:siz[i]:节点i子树…

双非一本,小公司打杂,跳槽进了大厂!

大家好,我是R哥。 好久没有分享面试辅导的成功案例了,图片打码、过程梳理、文章编写,着实难写啊,太费时间了。 今天和大家分享一个普通本科、不知名小公司程序员,成功逆袭互联网大厂的真实案例。 如果你觉得自己学历一般,背景普通,没有 “985/211” 学历加持,也没有中大…

No.65 Vue---Axios 网络请求、Axios 网络的请求封装、网络请求跨域解决方案

一、Axios 网络请求Axios 是一个基于 promise 的网络请求库。1.1 安装ctrl + c :停止服务。 安装:npm install -save axios 安装完启动原来的服务:npm run serve 1.2 引入局部引用:import axios from axios; //局部引用 全局引用: 1.3 get请求方式//get請求方式axios({met…

我的博客开启啦

由于微信访问限制,请长按识别下方二维码跳转下载

FastAPI复杂查询终极指南:告别if-else的现代化过滤架构

title: FastAPI复杂查询终极指南:告别if-else的现代化过滤架构 date: 2025/3/14 updated: 2025/3/14 author: cmdragon excerpt: 本文系统讲解FastAPI中复杂查询条件的构建方法,涵盖参数验证、动态过滤、安全防护等18个核心技术点。通过引入策略模式、声明式编程等技术,彻…

基于Ollama本地部署DeepSeek-r1:7b大语言模型

1、概述随着人工智能技术的飞速发展,越来越多的开发者和企业开始关注大语言模型(LLM)。这些模型以其强大的自然语言处理能力,在文本生成、问答、翻译、分类等多种任务中表现出色。然而,在实际使用中,许多人会遇到如何快速且高效地部署这些模型的问题。本文将介绍如何通过…

web116笔记(misc+lfi)

访问题目是一个视频,源码也没有什么有用信息 提示:misc+lfi 下载视频,使用 010editor 打开,发现存在 png 图片的数据,搜索另存为 过滤了蛮多的,不过没有过滤flag ,也没有过滤 filter 尝试构造语句?file=php://filter/resource=flag.php (直接读取) 如果没有设置 fil…

具身智能

Topic I: 3D VIsion Topic II: Robotics Topic IV: Reinforcement learning Linear Algebra Vector Space 向量空间Linear Combination 线性组合\(w=a_1v_1+a_2v_2+...+a_nv_n=\sum_i a_iv_i\)Span of Vectors\(v_i \in V_m\), \(w \in V_m\)Infinite-Ddimensional Vector Spac…

python的jieba

jieba 是一个广泛使用的 Python 中文分词库,主要用于将中文文本切分成独立的词语。 https://github.com/fxsjy/jieba 安装pip install jieba使用 (1)分词import jieba # 分词 text = "我爱自然语言处理" words = jieba.cut(text, cut_all=False) # 精确模式 prin…

3. 创建一个菜单组件-DeepSeek辅助编程

在deepseek中输入: 创建一个vue组件 组件实现菜单的功能 需要让调用该组件是可以自定义一些属性:mode:horizontal横向显示/vertical纵向显示,background-color,text-color,active-text-color,model:通过该model绑定菜单/model为MenuItem的数组 MenuItem由这些参数构成:inde…

微信支付相关配置

公众号相关配置 地址:https://mp.weixin.qq.com/一、获取用户openid相关配置 二、获取开发者ID(AppID)/开发者密码(AppSecret) 微信支付相关配置 地址:https://pay.weixin.qq.com/需要先申请开通支付产品微信支付相关参数获取: 一:获取商户号(商户号mach_id)三、获取证书…