https + 域名 + 客户端证书访问模式

项目使用金融云部署,对外暴露IP访问,因安全合规要求必须使用域名访问,但公司又不提供域名。故,改为 https + 域名 + 客户端证书双向认证 访问模式,大大提升安全性。

1. 密钥文件类型

.key.csr.cer(或 .crt)和 .srlSSL/TLS 证书管理中常见的文件类型。

1.1 .key 文件(私钥文件)

  • 是什么?
    • 这是一个私钥文件。它通常使用非对称加密算法(如 RSA、ECC)生成,包含一个绝对不能公开的密钥对中的私密部分。
    • 它可以是二进制的,但更常见的是 PEM 格式(文本格式,以 -----BEGIN PRIVATE KEY----- 开头,以 -----END PRIVATE KEY----- 结尾)。
  • 有什么作用?
    • 身份验证:服务器用它来向客户端证明自己的身份。在 SSL/TLS 握手过程中,服务器会用私钥对一段数据进行签名,客户端用对应的公钥(在证书里)验证签名,从而确信正在与持有正确私钥的服务器通信。
    • 加密:用于协商对称会话密钥。例如,在 RSA 密钥交换过程中,客户端会用证书中的公钥加密一个预主密钥并发送给服务器,只有持有私钥的服务器才能解密它。
    • 生成 CSR: 创建证书签名请求(.csr)时必须使用相应的私钥。

1.2 .csr 文件(证书签名请求文件)

  • 是什么?
    • 这是一个证书签名请求文件。它是由申请者生成的,包含了希望包含在证书中的信息(如域名、组织、所在地等),以及最重要的:对应私钥的公钥
    • 它也是通常使用 PEM 格式(以 -----BEGIN CERTIFICATE REQUEST----- 开头)。
  • 有什么作用?
    • 申请证书: 将它提交给证书颁发机构(CA),请求 CA 为其签发一个数字证书。
    • 信息载体: 包含了 CA 需要用来签发证书的所有信息。CSR 本身不包含私钥。
    • 验证来源: CA 会验证 CSR 中的信息(尤其是域名所有权和组织信息)是否真实有效。
  • 如何生成?
    • 使用 OpenSSL 等工具,通过已有的私钥(.key 文件)来生成。

1.3 .cer 或 .crt 文件(证书文件)

  • 是什么?
    • 这是数字证书文件。它是由证书颁发机构(CA)签发的,证明某个公钥属于某个特定的实体(如域名)。
    • 它是基于你的 .csr 文件签发的,并附有 CA 的数字签名,使其可信。
    • 常见格式有 PEM(文本格式,以 -----BEGIN CERTIFICATE----- 开头)和 DER(二进制格式)。扩展名 .cer.crt 通常可以互换使用,都指证书。
  • 有什么作用?
    • 公钥分发: 证书的核心内容之一就是服务器的公钥。客户端(如浏览器)会获取这个证书来拿到可信的公钥。
    • 身份证明: 证书包含了实体的身份信息(如域名),并由受信任的第三方(CA)背书。客户端通过验证证书的签名链,确信该证书是真实有效的。
    • 建立安全连接: 在 HTTPS 等场景中,服务器将自己的证书发送给客户端,客户端验证通过后,便使用证书中的公钥来加密通信,与服务器建立安全的 TLS 连接。
  • .csr 的关系:
    • .csr 是申请书(包含公钥和身份信息),.cer/.crt 是 CA 批准后颁发的正式身份证(包含公钥、身份信息和CA的签名)。

1.4 .srl 文件(序列号文件)

  • 是什么?
    • 这是一个序列号文件。它是由 CA(或自签名证书时的自己)生成和维护的一个简单的文本文件,里面包含一个十六进制的序列号。
  • 有什么作用?
    • 跟踪序列号: CA 为每个签发的证书分配一个唯一的序列号。每次签发新证书后,CA 会更新这个文件中的序列号,以确保下一个证书的序列号是唯一的。
    • 主要用于自签名CA: 当你自己扮演 CA,使用 OpenSSL 为多个服务器或客户端签发证书时,这个文件非常重要。它可以避免为不同的证书签发相同的序列号。
    • 首次生成证书时,OpenSSL 可能会创建一个包含初始序列号(如 00)的 .srl 文件。之后签发证书时会自动递增并使用它。

1.5 工作流程

1.5.1 CA颁发

在这里插入图片描述

生成
使用私钥创建
发送给
验证并签发
返回给
生成并维护
确保唯一性
泄露后果
申请者
密钥对 (.key)
证书签名请求 (.csr)
证书颁发机构 (CA)
数字证书 (.cer/.crt)
CA
序列号文件 (.srl)
⚠️ 安全警告
私钥必须严格保密
身份冒充、中间人攻击
  • 服务端:生成私钥(.key)→ 使用私钥生成证书签名请求(.csr)→ 将 .csr 文件提交给 CA → CA验证和签发,生成数字证书(.cer/.crt)→ 将私钥(.key)和 数字证书(.cer/.crt)配置在服务器(如 Nginx, Apache)上。
  • 客户端:当客户端(浏览器)访问,服务器下发证书,客户端验证安装证书。

1.5.2 自签名颁发

自签名签发相当于你自己扮演一个证书颁发机构(CA),为自己的服务器或客户端签发证书。一般应用场景:

  • 内部网络:公司内部服务器、开发测试环境、物联网设备。
  • 开发测试:在本地开发HTTPS应用。
  • 学习目的:理解PKI的工作原理。

⚠️重要警告⚠️:自签名CA颁发的证书在互联网上不会被公众信任的浏览器和操作系统默认信任。除非用户手动安装并信任你的根CA证书,否则会看到安全警告。

整个流程的核心是两级证书结构

  1. 生成根CA:创建一个根证书和私钥,这是所有信任的起点
  2. 用根CA签发服务器证书:使用根CA的私钥为你的服务器签发最终使用的证书。

大致流程图:

生成根CA密钥
ca.key
生成根CA证书
ca.crt
生成服务器密钥
server.key
创建服务器CSR
server.csr
用根CA签发服务器证书
server.crt
客户端
安装并信任ca.crt
访问服务器时验证server.crt
成功建立安全连接

https://blog.csdn.net/qq153471503/article/details/109524764

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

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

相关文章

ICPC 2023 Nanjing R L 题 Elevator

[ProblemDiscription]\color{blue}{\texttt{[Problem Discription]}}[Problem Discription] 来源:洛谷。侵权则删。 [Analysis]\color{blue}{\texttt{[Analysis]}}[Analysis] 贪心。优先运送楼层高的货物,在能装下的情况下尽量多装。 因为运送货物的代价…

81-dify案例分享-零代码用 Dify 使用梦 AI 3.0 多模态模型,免费生成影视级视频

1.前言 即梦AI作为字节跳动旗下的AI绘画与视频生成平台,近年来不断推出新的模型和功能,以提升用户体验和创作能力。 即梦AI 3.0是即梦AI的最新版本,于2025年4月发布,标志着其在中文生图模型上的重大升级。该版本不仅在中文生图能…

SQL 进阶指南:视图的创建与使用(视图语法 / 作用 / 权限控制)

在 SQL 操作中,你是否遇到过 “频繁查询多表关联的固定结果”“不想让他人看到表中的敏感字段” 这类问题?比如 “每周都要查‘技术部员工的姓名、职位、薪资’”,每次都写多表关联语句很麻烦;又比如 “给实习生开放数据查询权限&…

【全部更新完毕】2025数学建模国赛C题思路代码文章高教社杯全国大学生数学建模-NIPT 的时点选择与胎儿的异常判定

B题全部更新完毕 包含完整的文章全部问题的代码、结果、图表 完整内容请看文末最后的推广群NIPT 的时点选择与胎儿的异常判定 摘要 在问题一中,我们以无创产前检测(NIPT)数据为研究对象,围绕“胎儿 Y 染色体浓度”(记为 (V)) 随孕…

Redis(43)Redis哨兵(Sentinel)是什么?

Redis Sentinel(哨兵)是一种用于管理 Redis 实例的高可用性解决方案。它提供了监控、通知和自动故障转移等功能,确保 Redis 服务在发生故障时能够自动恢复,提供高可用性和可靠性。以下是详细介绍 Redis Sentinel 的功能及其代码示…

蓓韵安禧DHA纯植物藻油纯净安全零添加守护母婴健康

在母婴健康领域,选择合适的营养补充品至关重要。纯植物藻油DHA源自纯净藻类,有效规避了海洋重金属污染的风险,确保安全无隐患。配方坚持零添加香精、色素和防腐剂,避免不必要的化学物质摄入,让妈妈和宝宝更安心。同时&…

钉钉 AI 深度赋能制造业 LTC 全流程:以钉钉宜搭、Teambition 为例

制造业 LTC 流程痛点剖析​在制造业,线索到现金(LTC,Lead to Cash)的全流程包含从潜在客户线索的发现、商机培育、销售转化、订单执行到最终收款的一系列复杂环节。传统制造业在这一流程中面临诸多挑战:客户需求的多样…

理解UE4中C++17的...符号及enable_if_t的用法及SFINAE思想

下面是一段C17的代码&#xff1a;//函数1&#xff1a;template <typename... BufferTypes,std::enable_if_t<std::conjunction<CanAppendBufferType<std::decay_t<BufferTypes>>...>::value> * nullptr> inline explicit FCompositeBuffer(Buff…

安全419正式公布《甲方安全建设精品采购指南》案例首推运营商行业数据安全核心推荐厂商

在数字经济加速渗透与《网络数据安全管理条例》全面实施的双重背景下&#xff0c;运营商作为数据要素流通的核心枢纽&#xff0c;其安全防护体系建设已成为数字基础设施保障的关键环节。近日&#xff0c;安全 419 正式公布《甲方安全建设精品采购指南》&#xff0c;从近 300 个…

基础词根-汇总

ros rus粗糙 ris cos cus cis切lite文字 late面 侧面ven 来 cess走/agdotect 覆盖 covercele 聚集 加速 gre 聚集&#xff0c;accumu聚集gress 抵达 靠近&#xff0c;aggressive侵略性humor humir 大地 土地chron 时间 time&#xff0c;宇宙的宙lumi 光lightviv vil volun vot/…

JVM中常见的GC垃圾收集器

文章目录 目录 1. Serial GC&#xff08;串行收集器&#xff09; 2. Parallel GC&#xff08;并行收集器&#xff09; 3. CMS&#xff08;Concurrent Mark-Sweep&#xff0c;并发标记 - 清除&#xff09; 4. G1&#xff08;Garbage-First&#xff0c;垃圾优先&#xff09; …

嵌入式C语言之链表冒泡排序

链表冒泡排序一是可以交换指针域的值&#xff0c;二是可以交换指针typedef struct st_node{int score;struce st_node *next;}Node,*LinkList;LinkList createList(){Node *head (Node *)malloc(sizeof(Node));if(NULL head){printf("内存分配失败!"):return NULL;…

远场代码学习_FDTD_farfield

项目4.2 farfield3d - Script command在3D模拟中将给定的功率或场剖面监视器或直线数据集投射到远场。返回电场强度|E| 2。语法描述 out farfield3d("mname",f, na, nb, illumination, periodsa, periodsb, index, direction)&#xff1b; 将给定的功率或场分布监…

Adobe Illustrator(Ai) 2022安装教程与下载地址

Adobe Illustrator&#xff08;通常简称 AI&#xff09;是一款由 Adobe 公司开发的、基于矢量图形的专业设计软件。它与 Photoshop&#xff08;基于位图/像素&#xff09;和 InDesign&#xff08;专注于页面排版&#xff09;并称为数字创意领域的“三巨头”&#xff0c;是平面设…

小迪web自用笔记27

框架就是一些封装好的东西*上节课补&#xff1a;JS负责美化框架的&#xff08;发送HTTP请求前端&#xff0c;js相当于前端并且附加上一些连接后端的功能。&#xff09;&#xff0c;JAVA是后端。PHPthink&#xff08;用的最多的框架&#xff09;URL&#xff1a;原&#xff1a;ht…

创建阿里云ECS实例操作(免费试用版)

目录 1、进入阿里云ECS控制台 2、创建ECS实例 3、重置实例密码 4、远程登陆实例 5、查看ECS信息 6、安装apache服务 7、端口规则设置 8、访问测试 9、释放实例 1、进入阿里云ECS控制台 https://www.aliyun.com/ 2、创建ECS实例 3、重置实例密码 4、远程登陆实例 5、查…

JVM相关 4|JVM调优与常见参数(如 -Xms、-Xmx、-XX:+PrintGCDetails) 的必会知识点汇总

目录&#xff1a;&#x1f9e0; 一、JVM调优目标1. 调优核心目标2. 调优常见问题&#x1f9e9; 二、JVM调优核心参数详解1. 堆内存相关参数2. 垃圾回收器相关参数3. GC日志与性能监控4. 元空间&#xff08;Metaspace&#xff09;调优5. 栈内存调优6. 其他关键参数&#x1f4cc;…

HOT100--Day13--104. 二叉树的最大深度,226. 翻转二叉树,101. 对称二叉树

HOT100–Day13–104. 二叉树的最大深度&#xff0c;226. 翻转二叉树&#xff0c;101. 对称二叉树 每日刷题系列。今天的题目是《力扣HOT100》题单。 题目类型&#xff1a;二叉树。 关键&#xff1a;要深刻理解《递归》 104. 二叉树的最大深度 方法&#xff1a;递归 思路&…

Maven 从 0 到 1:安装、配置与依赖管理一站式指南

Maven 从 0 到 1&#xff1a;安装、配置与依赖管理一站式指南Maven 从 0 到 1&#xff1a;安装、配置与依赖管理一站式指南一、Maven 是什么&#xff1f;二、核心概念&#xff1a;POM三、Maven 是如何工作的&#xff1f;—— 仓库机制四、安装Maven五、在 IntelliJ IDEA 里配置…

k8s,v1.30.4,安装使用docker

一.前置概念Docker 与 Kubernetes 共用同一个 containerd 进程 时&#xff0c;只要满足以下 3 个条件&#xff0c;就不会冲突&#xff1a;检查点要求原因cgroup-driverkubelet 与 containerd 必须同为 systemd二者不一致会导致 Pod 无法调度Unix socketkubelet 指向 /run/conta…