X.509证书

默认情况下,JDK使用的是X.509证书。X.509是一个广泛应用的数字证书标准。它们在RFC2459中定义,可以从站点http://www.ietf.org/rfc/rfc2459.txt获得。X.509有三个版本:v1、v2和v3。每个新版本都为证书添加了一些可选的功能。

 

X.509v1证书

  • 版本——该字段定义了证书的版本号:v1、v2和v3。
  • 序列号——序列号是一个大的整数,对CA所发布的每个证书来说,它是惟一的。
  • 签名算法——它用来标识CA用来签署这个证书的算法。
  • 有效性——这一项定义证书的有效期。它由两个日期组成:不早于和不迟于。证书只有在这两个日期之间才有效。
  • 主体——这一项表明本证书应该发布给谁。主体按照X.500的命名标准进行存放。X.500是一个在线目录标准,它规定了每个个体的命名方法。X.500名字包括以下信息:

 

属性 内容
CN 普通名字
OU 机构单位
O 机构
L 机构的位置(通常为城市)
ST 机构所在的州
C 国家

 

      下面是一个X.500名字的例子:

             CN=Jess Garms, OU=Development, O=ISNetworks, st=Washington, C=US

  • 主体的公钥——不用奇怪,这是证书主体的公钥。
  • 签名——CA签署证书,并将签名的结果存放在此。用CA的公钥验证这个签名,可以检查该证书的合法性。

 

X.509v2证书

      X.509第二版添加了两个选项:发布者的惟一标识和主体的惟一标识。这些很少用到,但是为了完整地讲述该证书,我们还是把它列出来:

  • 发布者的惟一标识——如果多个证书发布者都使用相同的X.500名字,则这一项可以将它们区分开来。
  • 主体惟一标识——如果两个主体有相同的X.500名字,则一项可以将它们区分开来。

       由于这两项很少用到,因此第二版的证书也很少用到。

 

 

X.509v3证书

      第三版中添加了一个重要而且复杂的部分——扩展(extensions)。

      扩展在v3版证书中是一个可选项,但是可以提供如下内容:主体和发布者的属性、密钥的用法和策略以及证书路径约束。

  • 主体和发布者的属性——这一部分提供了主体以及发布者的附加属性。它包括别名和目录属性。
  • 密钥的用法和策略——X.509v3证书允许CA指定证书及其相关的密钥的用法。例如,密钥或者证书可以被限制为只支持签名或者只进行加密。
  • 证书路径约束——有些证书可以用来验证其他证书。证书路径约束这一项让CA指定其他证书可以产生何种类型的证书。

你可能感兴趣的:(jdk,C++,c,算法,C#)