使用 PVE 自签 CA 证书签发新证书

前言

PVE 安装时会自动创建一个有效期 10 年的 CA 证书, 我们可以利用这个 CA 证书给虚拟机中的 Web 应用签发新的 TLS 证书用于提供 HTTPS 服务. 下面以 PVE 虚拟机中通过 Docker 跑的一个 雷池 应用为例进行演示.

PVE 证书位置

官方文档: https://pve.proxmox.com/wiki/Proxmox_Cluster_File_System_(pmxcfs)#chapter_pmxcfs 下面我们只需要用到这两个文件:

文件说明
/etc/pve/priv/pve-root-ca.keyCA 私钥
/etc/pve/pve-root-ca.pemCA 证书

本地导入 CA 证书

Windows 系统运行 certmgr.msc > Trusted Root Certification Authorities > Certificates > All Tasks > Import 选择 pve-root-ca.pem 完成导入. 这样本地电脑就会信任 PVE 的 CA 证书, 后面用 CA 证书签发的应用证书也会继承信任.
在这里插入图片描述

签发新证书

SSH 到 PVE.

# 在 `subjectAltName` 中定义了两个 DNS 名称, 保证内网和外网两个域名都能识别
openssl req -new -subj "/C=CN/ST=Beijing/L=Beijing/O=Alian/CN=docker.alian.fun" \
-addext "subjectAltName = DNS:docker.lan, DNS:docker.alian.fun" \
-CA /etc/pve/pve-root-ca.pem -CAkey /etc/pve/priv/pve-root-ca.key \
-noenc -newkey rsa:2048 -keyout leichi.key -out leichi.pem# 得到两个文件: 证书私钥 leichi.key 证书本体 leichi.pem # 检查证书信息
openssl x509 -noout -text -in leichi.pem

展开解释 openssl 命令参数含义 openssl req 完整文档

  • -new 创建新的证书申请
  • -subj 定义 Subject 信息
  • -addext 添加额外的 subjectAltName 属性用于定义多个别名 DNS
  • -CA 指定 CA 证书位置
  • -CAkey 指定 CA 私钥位置
  • -noenc 对证书私钥不加密 (老版本 openssl 中用的是 -nodes 已 deprecated)
  • -newkey 创建新的证书私钥, 使用 2048 位长度 RSA 算法
  • -keyout 证书私钥输出的文件名
  • -out 证书本地输出的文件名

使用证书

在雷池管理后台分别粘贴/上传签发好的证书和私钥
在这里插入图片描述
证书信息被成功识别:
在这里插入图片描述
切换控制台证书生效:
在这里插入图片描述
刷新浏览器:
在这里插入图片描述

附: 校验证书和私钥

证书和私钥的模数(modulus)必须完全匹配才算是一对

# 计算证书模数
openssl x509 -noout -modulus -in pve-ssl.pem
# 计算私钥模数
openssl rsa -noout -modulus -in pve-ssl.key

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

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

相关文章

服务攻防-框架安全(漏洞复现)

关闭靶场 sudo docker-compose down 运行此靶场 sudo docker-compose up -d 查看启动环境 sudo docker ps 运行dockers容器 docker exec -it 64052abd288b /bin/bash thinkphp框架 thinkphp 2 - rce漏洞复现 docker exec -it 731dbae0e0b5 /bin/bash 集成化工具扫描 可以命令…

Qt区分鼠标按下时移动的是哪个多边形

使用不同的鼠标事件处理器:为每个多边形分配不同的事件处理器,或者在同一个处理器中使用逻辑来区分。 检查鼠标点击位置:在鼠标按下事件中,检查鼠标的位置是否在某个多边形的边上或顶点上。 使用图形的标识符:给每个…

十五届蓝桥杯JAVA B组题目详解(持续更新中)

试题 B: 类斐波那契循环数 我发现蓝桥杯的题目现在就是要费时间去理解,所以还是审题很重要,这道题的思路就是,一个n位数的前n个数,都是对应的位数上的值,比如说12345,五位数是吧,那数列S的前五位…

phpstudy下载使用以及搭建本地SQL labs靶场

一,PHP study 小皮面板(phpstudy) - 让天下没有难配的服务器环境! (xp.cn) 1,下载。 根据自己电脑系统下载对应的版本。 双击exe文件运行 选择下载目录(路径不能有中文名)。 2,使用。 启动阿帕奇和MySQ…

AI学习指南机器学习篇-自组织映射(Self-Organizing Maps,SOM)简介

AI学习指南机器学习篇-自组织映射(Self-Organizing Maps,SOM)简介 自组织映射(Self-Organizing Maps,SOM)是一种无监督学习算法,经常被用于降维、聚类和可视化高维数据。本篇博客将对SOM算法的…

数据库第二次作业

1.建立数据库 2.插入数据 3.完成查询 (1)、显示所有职工的基本信息。 (2)、查询所有职工所属部门的部门号,不显示重复的部门号。 (3)、求出所有职工的人数。 (4)、列…

FreeRTOS 信号量

信号量是操作系统中重要的一部分,信号量是任务间同步的一种机制,信号量可以用在多 任务访问同一资源时的资源管理。FreeRTOS 提供了多种信号量,按信号量的功能可分为二值信号量、计数型信号量、互斥信号量和递归互斥信号量。 使用信号量相关…

C#各种锁知识点

先上总结: 锁类型特点适用场景优点缺点自旋锁忙等待实现锁定,适合高并发短时间锁定高并发环境,短时间锁定,仅限单进程多线程同步开销低,避免线程上下文切换忙等待消耗CPU资源,不适合长时间锁定&#xff0…

组队学习——贝叶斯分类器

前言 本次数据继续沿用上一次主题的【组队学习——支持向量机-CSDN博客】 数据处理部分延续【组队学习——支持向量机】主题的处理办法对应划分训练集和验证集 模型选择 本次贝叶斯分类器模型的较多,常用的为高斯朴素贝叶斯分类器、多项式朴素贝叶斯分类器、伯努…

配置文件格式 XML 快速上手

文章目录 1.语法2.实例3.解析参考文献 XML(Extensible Markup Language)是可扩展标记语言,用来传输和存储数据。因为其允许用户自定义标记名称,具有自我描述性,可灵活地用于存储服务配置信息。 1.语法 XML 文档结构是…

JavaWeb总结

终于结束了JavaWeb的学习,个人感觉其实就是学习客户端与服务端交互的中间件,以及服务端处理的逻辑,来帮助我们构建整个项目的运转逻辑,从客户端到服务器再到客户端,核心是围绕着一系列的请求和响应如何处理&#xff0c…

嵌入式Linux学习: platform 设备驱动实验

在Linux中,Platform(平台)机制是一个重要的设备驱动管理框架,它主要在Linux 2.6内核及以后的版本中引入。Platform机制的主要目的是提供一种统一的方式来管理那些不直接挂靠在传统物理总线(如USB、PCI、I2C、SPI等&…

信息学奥赛一本通 1270:【例9.14】混合背包

【题目描述】 一个旅行者有一个最多能装V公斤的背包,现在有n件物品,它们的重量分别是W1,W2,…,Wn ,它们的价值分别为C1,C2,…,Cn。有的物品只可以取一次(01背包),有的物品可以取无限…

如何理解ref toRef和toRefs

是什么 ref 生成值类型的响应式数据可用于模板和reactive通过.value修改值 ref也可以像vue2中的ref那样使用 toRef 针对一个响应式对象(reactive)的prop创建一个ref两者保持引用关系 toRefs 将响应式对象(reactive封装)转换…

论文阅读:Speculative RAG: Enhancing Retrieval Augmented Generation through Drafting

论文地址:https://arxiv.org/abs/2407.08223 RAG 将 LLM 的生成能力与外部知识源相结合,以提供更准确和最新的响应。最近的 RAG 进展侧重于通过迭代 LLM 完善或通过 LLM 的额外指令调整获得自我批判能力来改进检索结果。在这项工作中,作者介…

编程中的智慧六:单例、原型、建造者

上一篇咱们结合Spring介绍了设计模式中的工厂模式相关方法,其实现在Java开发基本上都是基于Spring框架开发,所以后续我们在开发过程中基本上很少自己重写一个工厂模式,都是直接使用Spring来完成。今天咱们接着看剩下的创建型设计模式&#xf…

Dubbo学习笔记

Dubbo 简介 Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开源Java RPC框架,可以和Spring框架无缝集成。 其中文官网:https://dubbo.gitbooks.io/dubbo-user-book/content/ 特性和用法 架构 节点角色说明 节点角色…

应用层的重点协议

目录 一、DNS 二、NAT 1、技术背景 2、NAT机制IP转化过程 三、NAPT NAT技术的缺陷 四、HTTP 1、协议格式 2、HTTP请求 1)method(方法) GET请求的特点 POST请求的特点 GET和POST的区别 2)URL(网址) 基本格式 关于URL encode 3&#xff0…

c++11:异常

目录 c异常与c传统处理错误的区别 c语言处理错误的方式 c处理错误的方式 异常的抛出和处理 demo 异常的重新抛出 demo 异常安全 noexcept 自定义异常体系 c舍弃了c语言处理错误的方式,引入了异常来处理错误。 c异常与c传统处理错误的区别 c语言处理错…

js什么情况下使用同步,什么时候异步加载

JavaScript 中的同步和异步操作主要取决于代码的执行过程。以下是一些常见的同步和异步使用场景: 同步操作: 基本操作: 赋值、算术运算、逻辑判断等基本语句,这些操作都是同步执行的。 DOM 操作: 获取、修改 DOM 元素的属性和内容,这些操作都是同步执行的。 阻塞操作: 一些耗…