X.509数字证书内容结构

2023-11-08

更多区块链技术与应用分类:

区块链应用    区块链开发

以太坊 | Fabric | BCOS | 密码技术 | 共识算法 | 比特币其他链

通证经济传统金融场景 | 去中心化金融 | 防伪溯源 | 数据共享 | 可信存证

 

X.509证书

数字证书是现代信息安全的核心技术,无论是在以前的互联网中还是在如今区块链(联盟链为主)的场景应用中都有着非常普遍的应用,数字证书基本采用非对称加密技术,因此也被称公开密钥证书。

X.509 是一种密码学公开密钥证书的格式标准。

X.509 标准规定了证书可以包含什么信息,并说明了记录信息的方法(数据格式)。

X.509 证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构CA的签名,也可以是自签名)。

对于一份经由可信的证书签发机构签名或者可以通过其它方式验证的证书,证书的拥有者就可以用证书及相应的私钥来创建安全的通信,对文档进行数字签名。

另外除了证书本身功能,X.509还附带了证书吊销列表和用于从最终对证书进行签名的证书签发机构直到最终可信点为止的证书合法性验证算法。

X.509证书的数据结构

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            b4:74:f0:a8:c4:d3:f3:10
    Signature Algorithm: ecdsa-with-SHA256
        Issuer: CN=dir_chain_ca_normal, O=fisco-bcos, OU=chain
        Validity
            Not Before: Nov  6 01:55:13 2020 GMT
            Not After : Nov  4 01:55:13 2030 GMT
        Subject: CN=dir_chain_ca_normal, O=fisco-bcos, OU=chain
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub: 
                    04:f9:c7:30:3c:26:6e:73:58:33:2c:58:83:cf:b9:
                    da:e2:ff:16:e3:c8:63:dc:27:a2:d5:33:34:a6:be:
                    1f:9a:fd:30:e4:02:a6:c7:92:3d:49:e3:29:34:d6:
                    36:73:2a:b4:36:e8:0b:21:87:81:57:13:57:af:51:
                    31:9d:f6:01:2c
                ASN1 OID: secp256k1
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                4A:AA:77:70:F5:77:C7:10:32:B5:F9:96:2D:31:31:EE:8A:AF:46:06
            X509v3 Authority Key Identifier: 
                keyid:4A:AA:77:70:F5:77:C7:10:32:B5:F9:96:2D:31:31:EE:8A:AF:46:06
 
            X509v3 Basic Constraints: 
                CA:TRUE
    Signature Algorithm: ecdsa-with-SHA256
         30:45:02:21:00:fb:72:61:c0:0a:45:f3:fa:4f:87:7a:90:b6:
         fa:e3:6a:01:d2:22:9f:ee:f4:ff:85:21:ad:5d:af:31:ea:8c:
         5f:02:20:6c:ad:45:93:5c:82:e2:94:f2:e8:06:72:90:11:03:
         b3:e5:bc:27:51:c8:95:0c:43:3e:f8:43:04:ca:53:db:cd
-----BEGIN CERTIFICATE-----
MIIByjCCAXCgAwIBAgIJALR08KjE0/MQMAoGCCqGSM49BAMCMEMxHDAaBgNVBAMM
E2Rpcl9jaGFpbl9jYV9ub3JtYWwxEzARBgNVBAoMCmZpc2NvLWJjb3MxDjAMBgNV
BAsMBWNoYWluMB4XDTIwMTEwNjAxNTUxM1oXDTMwMTEwNDAxNTUxM1owQzEcMBoG
A1UEAwwTZGlyX2NoYWluX2NhX25vcm1hbDETMBEGA1UECgwKZmlzY28tYmNvczEO
MAwGA1UECwwFY2hhaW4wVjAQBgcqhkjOPQIBBgUrgQQACgNCAAT5xzA8Jm5zWDMs
WIPPudri/xbjyGPcJ6LVMzSmvh+a/TDkAqbHkj1J4yk01jZzKrQ26Ashh4FXE1ev
UTGd9gEso1AwTjAdBgNVHQ4EFgQUSqp3cPV3xxAytfmWLTEx7oqvRgYwHwYDVR0j
BBgwFoAUSqp3cPV3xxAytfmWLTEx7oqvRgYwDAYDVR0TBAUwAwEB/zAKBggqhkjO
PQQDAgNIADBFAiEA+3JhwApF8/pPh3qQtvrjagHSIp/u9P+FIa1drzHqjF8CIGyt
RZNcguKU8ugGcpARA7PlvCdRyJUMQz74QwTKU9vN
-----END CERTIFICATE-----

证书结构说明

  • 1.1.版本version
  • 1.2.序列号serialnumber
  • 1.3.签名算法signature
  • 1.4.颁发者issuer
  • 1.5.有效期生效时间:notAfter失效时间;notBefore
  • 1.6.证书主题SubjectDN
    • 1.6.1.国家C
    • 1.6.2.省份S
    • 1.6.3.地市L
    • 1.6.4.组织名称O
    • 1.6.5.机构名称OU
    • 1.6.6.用户名称CN
    • 1.6.7.邮箱Email
    • 1.6.8.域组件DC
  • 1.7.证书颁发者IssuerDN
    • 1.7.1.国家C
    • 1.7.2.省份S
    • 1.7.3.地市L
    • 1.7.4.组织名称O
    • 1.7.5.机构名称OU
    • 1.7.6.用户名称CN
    • 1.7.7.邮箱Email
    • 1.7.8.域组件DC
  • 1.8.主体公钥信息SubjectPublicKeyInfo
  • 1.9.颁发者唯一标识符IssuerUniqueID
  • 1.10.主体唯一标识符SubjectUniqueID
  • 1.11.标准证书扩展项Extensions
    • 1.11.1.密钥用法KeyUsage
      • 1.11.1.1.数字签名DigitalSignature
      • 1.11.1.2.认可NonRepudiation
      • 1.11.1.3.密钥加密KeyEncipherment
      • 1.11.1.4.数据加密DataEncipherment
      • 1.11.1.5.证书签名KeyCertSign
      • 1.11.1.6.密钥协商(仅加密或仅解密)KeyAgreement
    • 1.11.2.扩展密钥用法ExtKeyUsage
      • 1.11.2.1.服务器验证ServerAuth
      • 1.11.2.2.客户端验证ClientAuth
      • 1.11.2.3.代码签名CodeSigning
      • 1.11.2.4.Email保护EmailProtection
    • 1.11.3.基本限制BasicConstraints
    • 1.11.4.颁发机构密钥标识符AuthorityKeyIdentifier
    • 1.11.5.主体密钥标识符SubjectKeyIdentifer
    • 1.11.6.证书策略CertificatePolicies
    • 1.11.7.策略映射PolicyMapping
    • 1.11.8.最新证书撤销列表FreshestCRL
    • 1.11.9.证书撤销列表分布点CRLDistributionPoints
  • 1.12.私有证书扩展项PrivateExtensions
    • 1.12.1.个人身份标识码IdentityCode
    • 1.12.2.个人身份社会保险号InsuranceNumber
    • 1.12.3.企业工商注册号ICRegistrationNumber
    • 1.12.4.企业组织机构代码OrganizationCode
    • 1.12.5.企业税号TaxationNumber
    • 1.12.6.专用因特网扩展PrivateInternetExtensionsid-pkix
    • 1.12.7.机构信息访问AuthorityInfoAccess
    • 1.12.8.主体信息访问SubjectInformationAccess

原文链接:X509证书结构

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

X.509数字证书内容结构 的相关文章

随机推荐

  • VS2010安装失败解决办法

    1 运行regedit打开注册表 2 找到HKEY LOCAL MACHINE SOFWARE Microsoft Internet Explorer MAIN 3 MAIN子键的权限问题 修改成 允许完全控制 MAIN子键点击右键里弹出权
  • 解决Vue引入百度地图JSSDK:BMap is undefined 问题

    百度地图官网文档介绍使用JSSDK时 仅提供了三种引入方式 script引入 异步加载 npm install vue baidu map save 或 cnpm install vue baidu map save 全局引入 但vue项目
  • 每天一练——斐波那契数列前N项之和

    什么是斐波那契数列 斐波那契数列就是前两项之和会等于第三项 斐波那契数列通常以一为起始 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 正如我所说的前两项之和会等于第三项以此类推 那么
  • 【Unity3D】Unity5.6的Mecanim Animator动画系统结合MMD4Mecanim插件舞蹈动画

    1 下载MMD4Mecanim 官网 http stereoarts jp 我用的是最新版的MMD4Mecanim Beta 20170423 zip Unity是5 6 0版本的 2 解压后导入MMD4Mecanim unitypacka
  • 打印机漏洞(rce)

    20210510 0 出发 在翻阅论文的时候 突然想起来之前的时候 看到过一些打印机的漏洞 然后就在谷歌上搜索了一下 printer rce 然后找到了这篇文章 A Sheep in Wolf s Clothing Finding RCE
  • 老鸟重写程序需要准备点什么

    整体来说 老鸟工作已久 对语言 架构 算法 性能 安全 业务 各类型特点会掌控能力更高 但是年久未动手 不免生疏 为此专门整理需要的基本内容 可以抽空回味一下 在紧急上手之后 两周内查缺补漏 区别与新手面对任何问题的一脸懵逼 老鸟对所有技术
  • Redis配置优化

    Redis Redis 远程字典服务器 是一个开源的 使用c语言编写的NoSQL数据库 Redis 基于内存运行并支持持久化 采用key value 键值对 的存储形式 是目前分布式架构中不可或缺的一环 Redis服务器程序是单进程模型 也
  • 21世纪的管理挑战

    朋友很早前推荐看的德鲁克系列 最近在孔网搞到了 顺便在此记录读书笔记和想法 如下 第一章 管理的新范式 管理是企业管理 新学科 公共管理 不同组织的任务和挑战也不存在巨大的差异 企业必须具有一个恰当的组织形式 组织不是绝对的 它是提高人们在
  • 科学计数法 C语言

    题目 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法 其满足正则表达式 1 9 0 9 E 0 9 即数字的整数部分只有 1 位 小数部分至少有 1 位 该数字及其指数部分的正负号即使对正数也必定明确给出 现以科学计数法的格式给
  • gcc (GNU编译器套件)

    gcc GNU编译器套件 编辑 GNU编译器套件 GNU Compiler Collection 包括 C C Objective C Fortran Java Ada和 Go语言的前端 也包括了这些语言的库 如libstdc libgcj
  • va_list(),va_start(),va_arg(),va_end()

    va list va start va arg va end 详解 一 写一个简单的可变参数的C函数 下面我们来探讨如何写一个简单的可变参数的C函数 写可变参数的C函数要在程序中用到以下这些宏 void va start va list a
  • python redis 获取所有key

    使用scan代替getKeys 线上的登录用户有几百万 数据量比较多 keys算法是遍历算法 复杂度是O n 也就是数据越多 时间越高 数据量达到几百万 keys这个指令就会导致 Redis 服务卡顿 因为 Redis 是单线程程序 顺序执
  • Nodejs——时间戳与日期相互转换

    时间格式化的库 silly datetime 安装 npm i silly datetime save var sillyDateTime require silly datetime 获取当前时间 并转换为年月份 时分秒的格式 conso
  • Mybatis 插入大量数据性能问题的解决(Caused by: java.sql.SQLException: ORA-04030: 在尝试分配 2024 字节 (kxs-heap-c,kg hs)

    最近写的需求 需要频繁的往数据库中插入大量的数据 多达上万条 最后导致oracle 数据库直接挂掉了 这个问题肯定要解决的 主要的原因就是一次性插入这么多数据 oracle 数据库承受不住 最后 报Caused by java sql SQ
  • linux 汇编 cqo,x64asm: 包括内存汇编程序,解析器和链接器的C ++库

    x64asm x64asm is a c 11 library for working with x86 64 assembly It provides a parser in memory assembler and linker and
  • oracle表的常见字段类型有哪些,Oracle数据库的字段类型

    字 段 类 型 CHAR 固定长度字符串 最大长度2000 bytes VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes N
  • k8s七

    参考资料 深入剖析Kubernetes 张磊 目录标题 一 DaemonSet 简介 二 DaemonSet的实现原理 1 DaemonSet是如何确保每个节点只运行一个Pod 2 如何只在指定的节点上运行Pod 3 污点与容忍 三 使用D
  • 利用sprintf和sscanf实现十六进制和十进制之间的相互转换

    利用sprintf和sscanf实现十六进制和十进制之间的相互转换 2013 10 27 12 49 7497人阅读 评论 0 收藏 举报 分类 C C 语言 369 版权声明 本文为博主原创文章 未经博主允许不得转载 cpp view p
  • 金蝶 K3 ERP 采购管理 表结构明细 POOrder/Entry

    select from t TableDescription 金蝶K3表名备注 t tabledescription 采购订单POOrder 单头 FBrNo 公司机构内码 STRING 公司机构内码 FTranType 单据类型 INTE
  • X.509数字证书内容结构

    更多区块链技术与应用分类 区块链应用 区块链开发 以太坊 Fabric BCOS 密码技术 共识算法 比特币 其他链 通证经济 传统金融场景 去中心化金融 防伪溯源 数据共享 可信存证 X 509证书 数字证书是现代信息安全的核心技术 无论