x509证书中的Issuer和Subject

news2024/10/7 10:16:31

在x509标准中的位置

 

Issuer

颁发者字段标识已签署和颁发证书的实体。 颁发者字段必须包含一个非空的可分辨名称 (DN)。 颁发者字段定义为 X.501 类型名称 [X.501]。 名称由以下 ASN.1 结构定义:

 

Name 描述了一个由属性组成的分层名称,例如国家名称,以及相应的值,例如 US。 组件AttributeValue的类型由AttributeType决定; 通常它将是一个 DirectoryString。 DirectoryString 类型被定义为 PrintableString、TeletexString、BMPString、UTF8String 和 UniversalString 的选择。 符合此配置文件的 CA 必须使用 DirectoryString 的 PrintableString 或 UTF8String 编码,但有两个例外。 当 CA 先前颁发的证书的颁发者字段具有使用 TeletexString、BMPString 或 UniversalString 编码的属性时,CA 可以继续使用 DirectoryString 的这些编码以保持向后兼容性。 还有,新添加到现有 CA 颁发证书的域中的 CA,其颁发者字段的属性使用 TeletexString、BMPString 或 UniversalString 编码,可以使用与现有 CA 使用相同的编码对它们与现有 CA 共享的属性进行编码。 如上所述,专有名称由属性组成。 本规范不限制名称中可能出现的属性类型集。 然而,符合规范的实现必须准备好接收带有包含下面定义的属性类型集的颁发者名称的证书。 本规范建议支持额外的属性类型。

标准属性集已在 X.500 系列规范 [X.520] 中定义。 本规范的实现必须准备好在发行者和主题(第 4.1.2.6 节)名称中接收以下标准属性类型:

* country,
* organization,
* organizational unit,
* distinguished name qualifier,
* state or province name,
* common name (e.g., "Susan Housley"), and
* serial number.
 

此外,本规范的实现应该准备好在发行者和主题名称中接收以下标准属性类型:

* locality,
* title,
* surname,
* given name,
* initials,
* pseudonym, and
* generation qualifier (e.g., "Jr.", "3rd", or "IV").
这些属性类型的语法和相关对象标识符 (OID) 在附录 A 的 ASN.1 模块中提供。此外,本规范的实现必须准备好接收 domainComponent 属性,如 [RFC4519] 中所定义。 域名系统 (DNS) 提供分层资源标签系统。 此属性为希望使用与其 DNS 名称平行的 DN 的组织提供了一种方便的机制。 这不是替代名称扩展的 dNSName 组件的替代品。 不需要实现将此类名称转换为 DNS 名称。 该属性类型的句法和相关的 OID 在附录 A 的 ASN.1 模块中提供。用于 domainComponent 属性类型的编码国际化域名的规则在第 7.3 节中指定。

证书用户必须准备好处理颁发者可分辨名称和主题可分辨名称(第 4.1.2.6 节)字段,以执行证书路径验证的名称链接(第 6 节)。 名称链接是通过将一个证书中的颁发者专有名称与 CA 证书中的使用者名称进行匹配来执行的。 比较专有名称的规则在第 7.1 节中指定。 如果证书中颁发者和主题字段中的名称根据第 7.1 节中指定的规则匹配,则该证书是自行颁发的。

(如何判断该证书是否是自签证书, issuer和subject一致)

Subject
 

主题字段标识与存储在主题公钥字段中的公钥相关联的实体。 主题名称可以在主题字段和/或 subjectAltName 扩展中携带。 如果主题是一个 CA(例如,存在基本约束扩展,如第 4.2.1.9 节所述,并且 cA 的值为 TRUE),则主题字段必须填充一个与内容匹配的非空识别名 主题 CA 颁发的所有证书中的颁发者字段(第 4.1.2.4 节)。 如果主题是 CRL 发布者(例如,密钥使用扩展,如第 4.2.1.3 节所述,存在并且 cRLSign 的值为 TRUE),则主题字段必须填充一个与 主题 CRL 发布者发布的所有 CRL 中发布者字段(第 5.1.2.3 节)的内容。 如果主题命名信息仅出现在 subjectAltName 扩展中(例如,仅绑定到电子邮件地址或 URI 的密钥),则主题名称必须是空序列并且 subjectAltName 扩展必须是关键的。

 以EUM为例:

 如果非空,则主题字段必须包含 X.500 可分辨名称 (DN)。 对于由发行者字段定义的一个 CA 认证的每个主题实体,DN 必须是唯一的。 CA 可以向同一主题实体颁发多个具有相同 DN 的证书。

主题字段定义为 X.501 类型名称。 该字段的实现要求是为发行人字段定义的要求(第 4.1.2.4 节)。 本规范的实现必须准备好接收包含发行者字段所需属性类型的主题名称。 本规范的实现应该准备好接收包含发行者字段推荐属性类型的主题名称。 这些属性类型的语法和相关对象标识符(OID)在附录 A 的 ASN.1 模块中提供。本规范的实现可以使用第 7.1 节中的比较规则来处理不熟悉的属性类型(即名称链接) 属性值使用 DirectoryString 中的编码选项之一。 当不熟悉的属性类型包括带有不同于 DirectoryString 中的编码选项的属性值时,应使用二进制比较。 这允许实现处理主题名称中具有不熟悉属性的证书。

当对 DirectoryString 类型的属性值进行编码时,符合规范的 CA 必须使用 PrintableString 或 UTF8String 编码,但以下情况除外:

(a) 当证书的主题是 CA 时,主题字段的编码方式必须与主题 CA 颁发的所有证书中颁发者字段(第 4.1.2.4 节)中的编码方式相同。 因此,如果主题 CA 使用 TeletexString、BMPString 或 UniversalString 编码在其颁发的证书的颁发者字段中对属性进行编码,则颁发给该 CA 的证书的主题字段必须使用相同的编码。

(b) 当证书的主题是 CRL 发布者时,主题字段的编码方式必须与其在主题 CRL 发布者发布的所有 CRL 中的发布者字段(第 5.1.2.3 节)中的编码方式相同。 

(c) 包含 TeletexString、BMPString 和 UniversalString 是为了向后兼容,并且不应该用于新主题的证书。 但是,这些类型可以用于名称先前已建立的证书中,包括向现有主体颁发新证书或向新主体颁发证书的情况,其中被编码的属性先前已在 发给其他科目的证书。 证书用户应该准备好接收这些类型的证书。

存在遗留实现,其中电子邮件地址作为 emailAddress 属性 [RFC2985] 嵌入到主题专有名称中。 emailAddress 的属性值是 IA5String 类型,以允许包含字符“@”,它不是 PrintableString 字符集的一部分。 emailAddress 属性值不区分大小写(例如,“subscriber@example.com”与“SUBSCRIBER@EXAMPLE.COM”相同)。 生成带有电子邮件地址的新证书的一致性实现必须在主题可选名称扩展(第 4.2.1.6 节)中使用 rfc822Name 来描述此类身份。 在主题专有名称中同时包含 emailAddress 属性以支持遗留实现已被弃用,但允许。

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

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

相关文章

利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

首先,需要安装selenium库和对应的浏览器驱动程序。以Chrome浏览器为例,可以使用以下命令安装selenium和chromedriver: pip install selenium然后,需要下载对应版本的chromedriver,并将其添加到环境变量中。下载地址&a…

关于DSP28335设置内存分配设置堆栈笔记

关于DSP28335设置内存分 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 关于DSP28335设置内存分前言一、设置堆栈这里主…

【头歌】二叉树的顺序存储及基本操作

第1关:树和二叉树基本概念 任务描述 本关任务:根据所学树和二叉树的基本概念等相关知识,完成右侧的选择题。 相关知识 树的定义 从数据结构角度看,树包含n(n≥0)个结点,当n0时,…

thinkphp6-配置设置与获取,Thinkphp6自定义配置文件以及调用(config文件夹下的配置)

环境变量 设置环境变量 /.env [DATABASE] USERNAME root PASSWORD 123456 获取环境变量 app/controller/Index.php <?php namespace app\controller;use app\BaseController; use think\facade\Env;class Index extends BaseController {public function index(){$usern…

IO模型的分类以及各个io模型之间的优劣势

本文主要讲解bio以及nio的一些问题和知识&#xff0c;会对aio进行简单讲解&#xff0c;但不会深入剖析 我们说熟知的io模型有哪些呢&#xff1f; 同步阻塞io同步非阻塞io同步多路复用异步非阻塞io java的io本身是不具有真正的io操作能力的&#xff0c;当调用io操作时&#x…

基于ArcGIS:GIS空间分析复习-理论概念+案例分析

目录 01 第一章 1.1 GIS空间分析的概念 1.2 GIS空间分析的研究对象、研究目标 1.3 研究目标是&#xff1a;认知、解释、预报、调控。 1.4 道路拓宽案例分析 1.5 GIS空间分析的核心问题 02 第二章 2.1 空间查询的概念、空间量算的概念 2.2 函数距离的概念 2.3 空间查询…

Android之 常用数据库框架整理

一 简介 1.1 上节说了关系型数据库有以下几种&#xff1a; Oracle、Microsoft SQL Server、Microsoft Access、MySQL、SQLite 1.2 各自的领域也不一样 java&#xff0c;C#&#xff0c;php等用Oracle&#xff0c;Microsoft SQL Server&#xff0c;MySQL比较多。 移动端Andr…

07 - 3系统容量规划

阿里系业务容量规划 Tair集群部署与水位调配 阿里系容量精调之单机压测场景 传统模拟请求 流量复制 流量转发 网关权重 线上测试注意点 阿里系混合部署技术 资源分时复用&#xff1a;提高资源利用率sigama框架做在线资源池调度&#xff0c;伏羲做离线资源池调度&#xff1b;…

基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)

** 基于fpga的图像处理之图像灰度化处理 ** 本文的思路框架&#xff1a; ①本文采用两种算法进行灰度处理&#xff0c;平均法和加权均值法&#xff1b;加权均值法采用了直接公式求解和查找表两种方式验证 ②FPGA设计中三个设计技巧&#xff0c;可用于工程项目借鉴&#xff…

Redis了解

Redis 源码大概做了哪些事情&#xff1f; 设置默认参数创建对象、持久化定时器回调加载文件参数 (使用配置文件替代部分默认参数)加载文件数据写入字典创建client connect事件handler&#xff08;accept后&#xff0c;写入读写事件select()&#xff0c;最新的版本用epoll&…

xlsx 导出 (简单使用)

下载数据为xlsx 安装 npm install xlsx 在src下创建文件utils文件夹&#xff0c;在utils文件夹下创建XLSX.js文件 // 下载excel功能 import * as XLSX from xlsx/*** param dataList 表格数据内容 array* param fileName 文件标题。必须以 .xlsx结尾*/ export const download…

Linux网络——Shell编程之快捷命令

Linux网络——Shell编程之快捷命令 一、快捷排序 — sort 命令二、快捷去重 — uniq 命令三、快捷替换 — tr 命令四、快速裁剪 — cut 命令五、文件拆分 — split 命令六、文件合并 —paste 命令七、变量扫描器 — eval 命令 一、快捷排序 — sort 命令 sort命令用于以行为单位…

五步看平台,选好安全的MT4交易外汇平台

在选择MT4外汇交易平台时&#xff0c;如何避免不正规的平台?以下是5招教你远离不正规MT4交易外汇平台。 1. 查看平台是否取得合法许可证 首要考虑的是该平台是否取得了合法的许可证。许可证是证明一个交易平台合法的最重要证据&#xff0c;因此务必在选择时核查该平台的许可证…

得物深入浅出解析JVM中的Safepoint

1.初识Safepoint-GC中的Safepoint 最早接触JVM中的安全点概念是在读《深入理解Java虚拟机》那本书垃圾回收器章节的内容时。相信大部分人也一样&#xff0c;都是通过这样的方式第一次对安全点有了初步认识。不妨&#xff0c;先复习一下《深入理解Java虚拟机》书中安全点那一章…

你真的了解Java类加载机制吗?

大家好&#xff0c;我是小米&#xff0c;一个喜欢分享技术的程序员。今天我来给大家简述一下Java类加载模型。 在Java中&#xff0c;类的加载过程是在程序运行时动态进行的。Java的类加载模型可以分为三个步骤&#xff1a;加载、连接和初始化。 类加载过程&#xff1a;加载 首…

Android面试指南:谈谈你对Flutter的理解

一、Flutter简介 Flutter是由Google开发的一种基于Dar编程语言的移动应用开发框架。可以帮助开发在构建高性能、美观、灵活的应用程序&#xff0c;从而实现跨平台开发&#xff0c;适用于与Android、ios、web、windows、macOS和linux等多个平台。 二、学习Flutter有什么优势 …

Java EE企业级应用开发(SSM)第11章

第11章SSM框架 一.预习笔记 1.准备jar包&#xff08;注意版本&#xff09; Spring一套包 Springmvc两个 Mybatis一个 Spring整合mybatis一个 Jstl一个用于jsp显示数据 Mysql一个用于访问数据库 Gson一个用于返回json数据 2.准备配置文件web.xml applicationContext.xml…

MySQL Client

MySQL客户端很多&#xff0c;自身携带的一些客户端工具也需要了解&#xff0c;方便快速测试。 MySQL Shell MySQL Shell Commands。 执行SQL语句时&#xff0c;必须切换到SQL模式。Shell指令较少&#xff0c;同时可以使用Python \py模式。 MySQL Shell所有的命令后面不需要加…

TCP通道和共享链路通道

推送SDK为了适应不同的场景和需求&#xff0c;对于一些对消息及时性、可靠性、自定义性要求高的应用&#xff0c;如即时通讯、社交、游戏等&#xff0c;可能更倾向于使用TCP通道&#xff0c;对于一些对消息节省流量、耗电量、兼容性要求高的应用&#xff0c;如新闻、天气、股票…

【软件工程】自动化测试保证卓越软件工程能力(3)

测试目标定义 对照目标系统&#xff0c;如下&#xff1a; 给出自动化测试平台目标如下&#xff1a; Case levelCase briefReport send toOVERALLUser 1 -> Process -> Customer 1BossLevel 1User 1 -> Process -> Customer 1 User 1 -> Process -> Custome…