X.509
参考:https://baike.baidu.com/item/X.509/2817050?fr=aladdin
标题:X.509 百度百科
在密码术中,X.509是定义公用密钥证书格式的标准。 X.509证书用于许多Internet协议,包括TLS / SSL,这是HTTPS(浏览网络的安全协议)的基础。 它们还用于脱机应用程序,例如电子签名。 X.509证书包含公钥和身份(主机名,组织或个人),并且由证书颁发机构签名或自行签名。 当证书由受信任的证书颁发机构签名或通过其他方式进行验证时,持有该证书的人可以依靠其包含的公钥与另一方建立安全通信,或验证由相应私钥进行数字签名的文档。
历史及使用情况
证书
证书组成结构
- 证书
- ...
- 公钥算法
- 主题公钥
- 此日期前无效
- 此日期后无效
- 版本号
- 序列号
- 签名算法
- 颁发者
- 证书有效期
- 主题
- 主题公钥信息
- 颁发者唯一身份信息(可选项)
- 主题唯一身份信息(可选项)
- 扩展信息(可选项)
- 证书签名算法
- 数字签名
所有扩展都有一个ID,由object identifier来表达.它是一个集合,并且有一个标记用与指示这个扩展是不是决定性的。证书使用时,如果发现一份证书带有决定性标记的扩展,而这个系统并不清楚该扩展的用途,那么要拒绝使用它。但对于非决定性的扩展,不认识可以予以忽略。RFC 1422给出了v1的证书结构 ITU-T在v2里增加了颁发者和主题唯一标识符,从而可以在一段时间后可以重用。重用的一个例子是当一个CA破产了,它的名称也在公共列表里清除掉了,一段时间之后另一个CA可以用相同的名称来注册,即使它与之前的并没有任何瓜葛。不过IETF并不建议重用同名注册。另外v2在Internet也没有多大范围的使用。 v3引入了扩展。CA使用扩展来发布一份特定使用目的的证书(比如说仅用于代码签名) 所有的版本中,同一个CA颁发的证书序列号都必须是唯一的。
扩展指定了证书的用途
- Basic Constraints,{ id-ce 19 }用于指定一份证书是不是一个CA证书。
- Key Usage,{ id-ce 15 },指定了这份证书包含的公钥可以执行的密码操作。作为一个例子,它可以指定只能用于签名,而不能用来进行加密操作。
- Extended Key Usage,{ id-ce 37 },典型用法是用于叶子证书中的公钥的使用目的。它包括一系列的OID,每一个都指定一种用途。比如{ id-pkix 3 1 }表示用于服务器端的TLS/SSL连接,而{ id-pkix 3 4 }用于email的安全操作。
证书文件扩展名
- .cer,.crt,.der– 通常是DER二进制格式的,但Base64编码后也很常见。
- .p12–PKCS#12格式,包含证书的同时可能还有带密码保护的私钥
- .pfx– PFX,PKCS#12之前的格式(通常用PKCS#12格式,比如那些由IIS产生的PFX文件)
证书链和交叉认证
- 在证书链上除最后一个证书外,证书颁发者等于其后一个证书的主题。
- 除了最后一个证书,每个证书都是由其后的一个证书签名的。
- 最后的证书是信任主题,由于是通过可信过程得到的,你可以信任它。
例1: 两个PKI之间的根证书交叉认证
例2: CA证书更新
X.509证书样例
X.509的更多相关文章
- PIC12F508/505/509/510/506/519/526/527单片机破解芯片解密方法!
IC芯片解密PIC12F508/505/509/510/506/519/526/527单片机破解 单片机芯片解密型号: PIC12F508解密 | PIC12F505解密 | PIC12F506解密 ...
- 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)
之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂 ...
- WCF X.509验证
1.证书的制作 makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=ParkingServer -sky exchange -pe makecert. ...
- X.509,RSA,PKCS 普及
X.509 X.509是一种非常通用的证书格式.所有的证书都符合ITU-T X.509国际标准,因此(理论上)为一种应用创建的证书可以用于任何其他符合X.509标准的应用. 在一份证书中,必须证明公钥 ...
- X.509证书生成
创建数字证书 用户对数字证书的认可决定于对证书颁发机构的信任,所以证书颁发机构决定了数字证书的可用范围.由于官方认可的数字证书颁发机构,比如VeriSign.Thawte(OpenSSL),具有普遍的 ...
- [codeforces 509]C. Sums of Digits
[codeforces 509]C. Sums of Digits 试题描述 Vasya had a strictly increasing sequence of positive integers ...
- X.509证书_生成X.509协议的证书
用法:1. 用NOTE打开,修改按实际情况脚本中的(1)~ (6)处参数2. 找一台含JVM环境的WIN机器3. 双击执行后,会生成一对密钥4. 请确保当前使用的JDK版本为6.0!!! @echo ...
- 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)[zz]
openssl dgst –sign privatekey.pem –sha1 –keyform PEM –c c:\server.pem 将文件用sha1摘要,并用privatekey.pem中的私 ...
- Nine simple steps to enable X.509 certificates on WCF- 摘自网络
Table of contents Introduction and goal Beginner WCF FAQs Step 1: Create client and server certifica ...
- 第12章 X.509证书库的Fluent API - IdentityModel 中文文档(v1.0.0)
存储X.509证书的常见位置是Windows X.509证书存储区.商店的原始API有点神秘(在.NET Framework和.NET Core之间也略有变化). X509类是一个简化的API从所述存 ...
随机推荐
- 使用Cloud Toolkit部署SpringBoot项目到服务器
由于我们经常发布项目到测试服,在测试服上调试一些本地无法调试的东西,所以出现了各种打包,然后上传.启动,时间都耗费在这无聊的事情上面了,偶然在网上看到IntelliJ IDEA有 Cloud Tool ...
- git本地以及远程分支回滚
转:https://www.cnblogs.com/sunny-sl/p/11236280.html 1. git本地版本回退 Git reset --hard commit_id(可用 git lo ...
- BatchConfigTool批量配置工具
海康批量配置工具BatchConfigTool是一款支持设备在线搜索.批量配置参数.批量升级等功能的软件,支持对大批量设备同时进行各参数的配置,极大的简化了操作过程! 软件功能 1.对在线设备进行搜索 ...
- nginx的rtmp搭建流媒体服务器实现直播流
最近自己搞了一个用nginx的rtmp来搭建流媒体服务器,从而实现直播的过程,参考了网上很多资料,有些资料对于初学者来说比较难以理解,在此将我搭建的过程记录下来,分享给大家. 1.下载nginx-rt ...
- odoo连接外部数据库
odoo框架默认的访问时Postgres数据库,但在实际的应用场景中,不可避免的使用到其他数据库,所以有必要研究如何连接其他第三方数据库,这里分享下OCA的相关模块,具体的源代码在这里. 我将第三方的 ...
- (CSDN迁移) JAVA多线程实现-实现Runnable接口
实现Runnable接口 implements Runnable 重写run()方法 @Override public void run(){//TODO} 创建线程对象: Thread threa ...
- activiti学习1:开发环境的搭建
activiti学习1:开发环境的搭建 本文中使用maven+eclipse搭建activiti-5.14的开发环境 一.创建maven工程 创建一个普通的java工程,pom文件的内容如下 < ...
- python3.5+tornado学习
python3.5的安装 python官网下载地址:https://www.python.org/ 自行下载最新版本 下载pip包或者easy_install 后缀为.gz格式 地址:https:// ...
- 常用SQL指令
SQL去重复语句:select 改为Delete select * from TRWTC01 where ITEM_NAME in (select ITEM_NAME from TRWTC01 gro ...
- day26——tyoe元类与object的联系、反射、函数与方法的区别、双下方法
day26 type元类与object联系 type 获取对象从属于的类 python 中一切皆对象, 类在某种意义上也是一个对象,python中自己定义的类,以及大部分内置类,都是由type元类(构 ...