x509证书中的Issuer和Subject

在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.mfbz.cn/a/19798.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多目标优化算法求解无人机三维路径规划

一、无人机模型 无人机三维路径规划是无人机在执行任务过程中的非常关键的环节,无人机三维路径规划的主要目的是在满足任务需求和自主飞行约束的基础上,计算出发点和目标点之间的最佳航路。 1.1路径成本 无人机三维路径规划的首要目标是寻找起飞点和目…

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

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

Path如何进行环境变量的配置?

开发Java程序,需要使用JDK提供的开发工具(比如javac.exe、java.exe等命令),而这些工具在JDK的安装目录的 bin目录下,如果不配置环境变量,那么这些命令只可以在该目录下执行。我们不可能把所有的java文件都放到JDK 的bin目录下&…

给Debian 11系统,添加右键时,使用其它程序打开】

VS Code 添加到文件管理器的右键菜单中 在 Debian 系统中,nautilus-actions 软件包已经被移除了。因此,如果你想将 VS Code 添加到文件管理器的右键菜单中,你需要使用 nautilus-admin 工具。下面是详细步骤: 打开终端应用程序。运…

前端三剑客CSS篇——CSS选择器

初识CSS选择器 文章目录 初识CSS选择器CSS三大特征👍CSS的三种使用方法👏CSS常见选择器👀标签选择器类选择器id选择器后代选择器属性选择器复合选择器 CSS代码风格📜 CSS是前端三剑客不可忽略的一部分,CSS对前端来说是…

项目成本管理

定义:项目各个成本的总和 作用:在预算范围内完成项目 考点: 直接成本是指一个由项目组承担的费用,例如员工的工资,电脑等硬件费用。 间接成本是指由多个项目组承担的费用,例如租金,水电费&am…

c++ 11标准模板(STL) std::vector<bool> (二)

定义于头文件 <vector> template<class Allocator> class vector<bool, Allocator>; std::vector<bool> 是 std::vector 对类型 bool 为空间提效的特化。 std::vector<bool> 中对空间提效的行为&#xff08;以及它是否有优化&#xff09;是实现…

19 树表的查找

文章目录 二叉排序树(BST)查找操作二叉排序树的存储结构查找实现查找算法分析二叉排序树的平均查找长度 插入操作删除操作代码实现 平衡二叉树&#xff08;AVL&#xff09;插入&旋转操作插入操作四种旋转情况代码实现 删除操作查找操作 介绍 树表查找是一种在树形数据结构中…

React antd Form item「受控组件与非受控组件」子组件 defaultValue 不生效等问题总结

一、为什么 Form.Item 下的子组件 defaultValue 不生效&#xff1f; 当你为 Form.Item 设置 name 属性后&#xff0c;子组件会转为受控模式。因而 defaultValue 不会生效。你需要在 Form 上通过 initialValues 设置默认值。name 字段名&#xff0c;支持数组 类型&#xff1a;N…

Cocos Creator 3.7.3 正式上线,渲染管线和算法持续更新

Cocos Creator 3.7.3 正式发布。该版本对近日用户反馈的一系列关键性问题进行了集中修复&#xff0c;也对一部分性能进行了优化&#xff0c;提升了用户体验&#xff0c;建议所有 v3.x 用户升级。 Engine Features Render Graph 自定义渲染管线支持 GLES 后端Deprecate addRast…

十分钟教你搭建ChatGPT 图片生成的安卓应用

十分钟教你搭建ChatGPT 图片生成的安卓应用 大家好&#xff0c;我是易安&#xff01; 今天&#xff0c;我们将集成 OpenAI API (ChatGPT)来构建一个简单的类似 ChatGPT 的 android 应用程序&#xff0c;让它返回我们想要的图片&#xff0c;本文是上一篇的姊妹篇。 详细步骤 第…

Linux安装使用PostgreSQL

安装PostgreSQL 开源数据库&#xff1a;PostgreSQL 在官网选择对应版本的安装包 https://www.postgresql.org/download/ 我的Linux系统是CentOS7 选择对应的系统 选择安装的版本、平台、架构 复制粘贴安装脚本运行 初始化后会创建一个用户postgres&#xff0c;一般开始…

IDEA开发实现Maven+Servlet+Mybatis实现CRUD管理系统-Mapper代理开发

Mapper代理开发概述 之前我们写的代码是基本使用方式&#xff0c;它也存在硬编码的问题&#xff0c;如下&#xff1a; 这里调用 selectList() 方法传递的参数是映射配置文件中的 namespace.id值。这样写也不便于后期的维护。如果使用 Mapper 代理方式&#xff08;如下图&…

MapReduce框架

TextInputFormat 1&#xff09;FileInputFormat实现类 思考&#xff1a;在运行MapReduce程序时&#xff0c;输入的文件格式包括&#xff1a;基于行的日志文件、二进制格式文件、数据库表等。那么&#xff0c;针对不同的数据类型&#xff0c;MapReduce是如何读取这些数据的呢&…

解密《永恒之塔私服》龙界要塞全貌

《永恒之塔2.0&#xff1a;进军龙界》将于12月29日14:00正式开放测试&#xff0c;全区全服29日起陆续更新&#xff0c;并将在元旦假期期间完成所有区服更新工作。12月27日&#xff0c;2.0新区抢先免费体验已经开始&#xff0c;凭特权激活码抢先免费体验无外挂《永恒之塔2.0》。…

1.环境搭建

1.Windows 系统GolangVisual Studio CodeMicrosoft Windows (x86-64)go1.20.1.windows-amd64.msihttps://code.visualstudio.com/DownloadMicrosoft Windows (x86-i386)go1.20.1.windows-386.msihttps://code.visualstudio.com/DownloadMicrosoft Windows (ARM64)go1.20.1.win…

【操作系统】内存管理

文章目录 内存的基础知识什么是内存进程的工作原理指令的工作原理逻辑地址&#xff08;相对地址&#xff09;vs物理地址&#xff08;绝对地址&#xff09;从写程序到程序运行—编译、链接、装入装入的三种方式链接的三种方式 什么是内存管理&#xff1f;内存空间的分配与回收内…

基于51单片机的简易电子秤

首先看看题目要求&#xff1a; 1.方案论证 &#xff08;1&#xff09;压力传感器的论证与选择 方案一&#xff1a;采用惠更斯电桥&#xff0c;当电阻应变片承受载荷产生变形时&#xff0c;其阻值将发生变化。从而使电桥失去平衡&#xff0c;产生相应的差动信号&#xff0c;但…

Java中线程的状态

Java中线程的状态分为6种。 初始(NEW)&#xff1a;新创建了一个线程对象&#xff0c;但还没有调用start()方法。运行(RUNNABLE)&#xff1a;Java线程中将就绪&#xff08;ready&#xff09;和运行中&#xff08;running&#xff09;两种状态笼统的称为“运行”。 线程对象创建…

gateway的使用

什么是Spring Cloud Gateway 网关作为流量的入口&#xff0c;常用的功能包括路由转发&#xff0c;权限校验&#xff0c;限流等。 Spring Cloud Gateway 是Spring Cloud官方推出的第二代网关框架&#xff0c;定位于取代 Netflix Zuul。相比 Zuul 来说&#xff0c;Spring Cloud …
最新文章