首页 > 其他分享 >如何将SSL证书从Kubernetes Secrets导出并复原为证书PEM和密钥文件

如何将SSL证书从Kubernetes Secrets导出并复原为证书PEM和密钥文件

时间:2023-07-04 16:57:42浏览次数:43  
标签:tls certificate Kubernetes 证书 Secrets private yaml key

首先,您需要使用 kubectl 工具从 Kubernetes 导出 Secret 到一个 yaml 文件,这通常使用如下命令:

kubectl get secret my-secret -o yaml > my-secret.yaml

然后我们可以创建一个简单的 bash 脚本来处理 yaml 文件并导出证书:

#!/bin/bash

# 解析 yaml 文件并得到证书内容
certData=$(cat my-secret.yaml | grep tls.crt | awk '{print $2}')
keyData=$(cat my-secret.yaml | grep tls.key | awk '{print $2}')

# 导出证书和密钥
echo $certData | base64 --decode > cert.pem
echo $keyData | base64 --decode > key.pem

这个脚本将从您的 yaml 文件中提取 tls.crt 和 tls.key(这是 Kubernetes 中默认的 SSL Secret 格式)的内容,然后使用 base64 解码并将结果导出到 pem 文件中。

这个脚本假定您的 yaml 文件名称为 my-secret.yaml,并且您的证书和密钥分别以 base64 编码存储在 tls.crttls.key 中。根据您的实际情况,您可能需要修改这些参数以适应您的环境。

文心一言


当导出SSL证书和私钥时,需要小心处理敏感数据。以下是一个基于Python的示例脚本,用于将Kubernetes Secrets中的证书和私钥导出为PEM格式的文件。

python

import yaml  
import base64  
import os  
  
# 读取Kubernetes Secrets的YAML文件  
with open('secrets.yaml', 'r') as file:  
    secrets_yaml = yaml.safe_load(file)  
  
# 从YAML中提取证书和私钥数据  
certificate = base64.b64decode(secrets_yaml['data']['tls.crt'].encode('utf-8'))  
private_key = base64.b64decode(secrets_yaml['data']['tls.key'].encode('utf-8'))  
  
# 导出证书和私钥到文件  
certificate_filename = 'certificate.pem'  
private_key_filename = 'private_key.pem'  
  
with open(certificate_filename, 'wb') as certificate_file:  
    certificate_file.write(certificate)  
  
with open(private_key_filename, 'wb') as private_key_file:  
    private_key_file.write(private_key)  
  
print(f'Certificate saved to {certificate_filename}')  
print(f'Private key saved to {private_key_filename}')

请确保将secrets.yaml文件替换为您实际的Kubernetes Secrets YAML文件的路径。此脚本将证书保存到certificate.pem文件,私钥保存到private_key.pem文件。

标签:tls,certificate,Kubernetes,证书,Secrets,private,yaml,key
From: https://www.cnblogs.com/firmament/p/17526172.html

相关文章

  • Camstar SSL需要证书下载才能导入excel
    谷歌浏览器F12,点击security,点击ViewCertificate.  下载好了,双击,进行安装 设置:注册表 ......
  • mac ventura 证书不受信任
    iOS发布App每隔一段时间都会有新的要求,这次遇到iOSSDK最低是16.1,无奈把MacOS到Ventura13.0,但出问题了启动不了,故重装了MacOS后,安装了xcode14.1,然后在xcode重新生成了AppleDistribution,登录到开发者中心网站新建了provisioningprofile,并通过xcode 下载到本机。通过上述......
  • 常见证书文件如何转成crt和key格式
    1常见证书文件*.DER或*.CER文件:该文件是二进制格式,它只含有证书信息,不包含私钥。*.CRT文件:该文件是二进制格式或文本格式,它也只含有证书信息,不包含私钥。*.PEM文件:该文件是文本格式,它一般存放证书或私钥,或同时包含证书和私钥。*.PEM文件如果只包含私钥,一般用*.KEY文件代替。*.PF......
  • iOS分发证书过期或手动吊销,会影响App的下架吗?
    ​iOSdistribution发布证书过期或者被手动revoke了app会被下架吗? 在距离distribution证书过期一个月(或被手动revoke了)的时候会受到apple的邮件  ​编辑 虽然distribution过期(或者被手动revoke)了,如果你的开发者账号是company(公司)类型或个人类型的,只要你的每年99$的......
  • 如何正确学习Kubernetes
    现在Kubernetes已经没有了实际意义上的竞争对手,它的地位就如同Linux一样,成为了事实上的云原生操作系统,是构建现代应用的基石。理论上讲,学习Kubernetes只要看资料就足够了,但实际情况却是学习起来仍然困难重重,我们会遇到很多意想不到的问题。Kubernetes技术栈的特点可以用四个......
  • 在 Kubernetes(k8s) 上部署 Spring Boot 应用程序:应用程序使用环境变量中的错误端口属
    如果我使用此配置启动部署(即先启动服务,然后启动部署)则pod在启动期间会失败。在日志中,我可以找到以下消息:***************************APPLICATIONFAILEDTOSTART***************************Description:Bindingtotargetorg.springframework.boot.autoconfigu......
  • Android信任证书,把用户级别放入系统级别
    三、操作步骤1、在Windows安装openssl,用来把证书转成.pem 格式1)下载和安装下载其他人做的便捷版安装包:http://slproweb.com/products/Win32OpenSSL.html    2)配置path环境变量   2、把证书转成.pem 格式(如果本身就是这个格式就不转了)......
  • kubernetes学习笔记06(存储)
    Kubernetes存储管理容器中的磁盘生命周期是短暂的,也带来了一系列的问题:当一个容器损坏后,Kubernetes会重启容器,但是文件会丢失很多容器在同一Pod中运行的时候,数据文件需要共享KubernetesVolume的到来解决了上述问题,Kubernetes集群中的存储跟Docker的存储卷有些类似,只不过Docker的存......
  • 喜报频传|海泰方圆红莲花安全浏览器喜获国密认证二级证书!
    近日,海泰方圆红莲花安全浏览器成功获得国家密码管理局颁发的安全浏览器密码模块二级产品认证证书!安全浏览器密码模块二级为浏览器产品的最高等级,此证书的取得标志着红莲花安全浏览器整体的安全性得到了进一步的认可,也再一次凸显了海泰方圆强劲的密码能力!经国家密码管理局商用密码检......
  • Kubernetes集群 v1.27.3
    基础环境三个节点均需操作,以k8s-master为例主机节点进程IP配置操作系统k8s-masterdocker,kube-apiserver,etcd,kube-scheduler,kube-controller-manager,kubelet,kube-proxy,coredns,calicoNet:10.10.20.10Centos8-Streamk8s-worker01docker,kubelet,kube-proxy,calico......