,,,,,,,证书通常是一个几K的小文件,使用二进制或者一定编码的文本(例如Base64)等保存有关公私钥和相应的信息。
,,,,,,,那么证书里面包含哪些信息呢?
,,,,,,,简单来说有这些信息:
?版本号
证书版本
引用>?序列号
证书序列号
引用>?签名算法ID
签名方式ID
引用>?发行人名称
签发者
引用>?有效期
有效期。
引用>?主题名称
主题名,通常是人,组织或者Web/应用服务器等。
引用>?主题公钥信息
主题公钥信息。
引用>?发行人惟一标识符
签发者唯一标识。
引用>?主题惟一标识符
主题唯一表示。
引用>?扩展
扩展,用于存储额外信息,例如密钥用法,别名等等。
引用>?哈希签署的证书数据
证书数据哈希散列签的名,使用签发这私钥进行加密,可作为数字签名。
当然,最关键的是证书的三要素:
1,信任的颁发者
2,有效期
3名称一致
否,则证书使用是就会遇到问题:
引用>
,,,,,,,,为了避免这种问题,一般有两种方式获取证书:
,,,,,,,,1、使用第三方证书。
,,,,,,,,所谓第三方证书,就是专门提供证书服务的机构,按年收取证书费用,为用户提供证书。由于这些机构的根CA往往随设备或者设备上的操作系统提供,因此用户无需手动去配置系统信任他们颁发的证书。
,,,,,,,,对最终用户,尤其是使用移动设备不方便导入证书的最终用户而言很方便,缺点是有每年的费用。
,,,,,,,,2、使用自建CA颁发证书。
,,,,,,,,有很多免费的CA系统可以使用,例如Windows Server自带的AD CS(广告证书服务)。可以使用广告或者手动导入CA的证书,作为受信任的证书颁发机构,由此解决验证机构不受信任的问题。
,,,,,,,对最终用户而言,可能需要导入CA证书,存在一定技术难度。好处是不需要付出证书费用。
说说证书本;本证书构成和常见三要素