网络安全无疑是现阶段互联网发展最大的问题,数字证书是解决这个问题的一个绕不开的办法,不管是ActiveX插件还是https都需要用到数字证书。
1. 基本概念
- CA(Certificate Authority)被称为证书授权中心,是数字证书发放和管理的机构。
- 根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。
- 数字证书颁发过程一般为:
- 用户首先产生自己的密钥对,
- 将公共密钥(公钥)及部分个人身份信息传送给认证中心
- 认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息
有4个概念一定要清楚:
1.1 CA根证书,CA证书
CA证书有两个作用:
- 签发数字证书(用户找CA签发)
- 校验数字证书(客户找CA校验收到的证书是否合法有效)
在SSL通信握手过程中,需要将公钥数字证书交给对方,对方如何对数字证书进行校验?就是要在找到签发此证书的CA证书及证书链,一直找到CA根证书。
1.2 数字证书
使用CA证书的私钥给用户生成的公钥签名,生成公钥数字签名证书。证书是为了防伪、防冒充的。
我们通常说的数字证书都是公钥数字证书:包含公钥、签发证书的CA证书信息、CA数字签名等数据。
要验证数字证书的真伪,就需要找到签发这个证书的CA证书,要验证CA证书的真伪则需要找到签发CA证书的CA证书,就这样一直找到根证书。
1.3 非对称密钥系统
非对称加密、私钥、公钥、加密、签名。
非对称加密:在非对称加密系统中,公钥加密的数据只有私钥才能解密,私钥加密的数据只有公钥才能接密。
加密:公钥加密,私钥解密
签名:私钥加密、公钥解密
1.4 ssh免密登录
在ssh免密登录中,需要将公钥放到远程服务器中,本地保存私钥,即可实现免密登录。
2. 认证流程
https认证流程:
- 1、服务器生成一对密钥,私钥自己留着,公钥交给数字证书认证机构(CA)
- 2、CA进行审核,并用CA自己的私钥对服务器提供的公钥进行签名生成数字证书
- 3、将生成的数字证书部署到web服务器
- 4、client在https建立连接时,需要先从服务器获取数字证书,在本机找到数字证书的签发机构的CA的公钥(根证书)对数字证书进行验证,比对一致,说明该数字证书确实是CA颁发的(得此结论有一个前提就是:客户端的CA公钥确实是CA的公钥,即该CA的公钥与CA对服务器提供的公钥进行签名的私钥确实是一对。),而CA又作为权威机构保证该公钥的确是服务器端提供的,从而可以确认该证书中的公钥确实是合法服务器端提供的。
注:为保证第4步中提到的前提条件,CA的公钥必须要安全地转交给客户端(CA根证书必须先安装在客户端),因此,CA的公钥一般来说由浏览器开发商内置在浏览器或操作系统的内部。于是,该前提条件在各种信任机制上,基本保证成立。
3. 制作自己的根证书及数字证书
通过CA生成数字证书比较很麻烦,而且要收费贵,在公司设备与公司的服务器通信时可以采用自己生成的数字证书,但是需要将数字证书导入到设备中。
制作数字证书工具 makecert : makecert 制作数字证书
数字签名工具SignTool下载【 链接: https://pan.baidu.com/s/1nROzB5qcmrY25E-PlW3mFw 密码: x5jj】