数字证书(Digital Certificate)也称为电子证书,类似于日常生活中的身份证,也是另外-· 种形式的身份认证,用于标识网络中的用户身份。数字证书集合了多种密码学的加密算法,证书自身带有公钥信息,可以完成相应的加密、解密操作,同时,还拥有自身信息的数字签名,可以鉴别证书的颁发机构,以及证书内容的完整性。由于证书本身含有用户的认证信息,因此可以作为用户身份识别的依据。
通常数字证书会包含如下内容:
• 对象的名称(人、服务器、组织); • 证书的过期时间; • 证书的颁发机构(谁为证书担保); • 证书颁发机构对证书信息的数字签名: • 签名算法: • 对象的公钥。
对象的名称指的是证书所代表的用户,可以是人、服务器、组织等。证书的过期时间用来确定证书是否仍然有效。颁发机构将为证书的真实性与有效性做担保,确保证书所携带的信息是经过校验的。数字签名用于鉴别证书的颁发机构,以及证书内容是否完整,颁发机构用私钥对证书进行签名,而校验方使用颁发机构的公钥来解密签名,与其用摘要算法生成的摘要进行比较,便可以验证证书是否由该机构所颁发,信息是否完整。对象的公钥用来对信息进行加密,信息传输到接收方,接收方将使用公钥对应的私钥进行解密。


- X.509
不同的数字证书所包含的内容信息和格式可能不尽相同,因此,需要有一 种格式标准来规范数字证书的存储和校验。大多数的数字证书都以一 种标准的格式 (即 X .509) 来存储它们的信息。X.509提供了一 种标准的方式,将证书信息规范地存储到一 系列可解析的字段当中.X.509 V3是X.509标准目前使用最为广泛的版本。表3-1中介绍了X.509证书中所包含的字段信息。

- 证书签发
在现实生活中,我们的身份证件需要由相应的政府机关进行签发,而网络用户的数字证书则需要由数字证书认证机构 ( Certifi cate Authority, CA) 来进行颁发,只有经过 CA 颁发的数字证书在网络中才具备可认证性。 数字证书的签发过程实际上就是对数字证书的内容,包括证书所代表对象的公钥进行数字签名,而验证证书的过程,实际上是校验证书的数字签名,包含了对证书有效期的验证。证书签名的生成如图

VeriSign (www.verisign.com)、GeoTrust(www.geotrust.com)和Thawte (www.thawte. com) 是公认的国际权威数字证书认证机构的 “三巨头”,其中使用最为广泛的为 VeriSign 签发的电子商务用数字证书。
通常,这种由国际权威数字证书认证机构颁发的数字证书需要向用户收取昂贵的费用,但并不是所有的国际权威数字证书认证机构都收费,如 Cacert C www.cacert.org), 就是一 个免费的数字证书颁发国际组织。
3,证书校验

证书主要包含用户的信息、用户的公钥和证书认证机构对该证书信息的数字签名。要验证一 份证书的真伪 (即验证证书认证机构对该证书信息的签名是否有效),需要用证书认证机构的公钥来验证,而证书认证机构的公钥存在于对这份证书进行签名的上一 级用户的数字证书内,但使用该证书验证又需先验证该证书本身的真伪,故又要用签发该证书的证书来验证,这样一来就构成一 条证书链的关系。这条证书链在哪里终结呢?答案就是根证书。根证书是一 份特殊的证书,它的签发者是它本身,下载安装根证书就表明对该根证书及其所签发的证书都表示信任,而在技术上则是建立起一 个验证证书信息的链条,证书的验证追溯至根证书即结束。所以用户在使用数字证书之前必须先安装颁发该证书的根证书。
大多数操作系统都会预先安装一 些较为权威的证书认证机构的根证书,如 VeriSign、 GeoTrust等。如果证书是非权威认证机构的证书,用户需要自行下载安装该证书认证机构的根证书,并且保证该根证书的合法性。因为一 旦安装该机构的根证书,表示信任该根证书所颁发的所有证书。Windows下的受信任根证书列表如图:
- 证书管理
任何机构或者个人都可以申请数字证书,并使用数字证书对网络通信保驾护航。要获得娄字证书,首先需要使用数字证书管理工具,如keytool、OpenSSL等,然后构建CSR (Certificate Signing Request, 数字证书签发申请),提交给数字证书认证机构进行签名,最终形成数字证书。
摘自: 《大型分布式网站架构设计与实践》 阅读笔记
待续。。。。。。。。