局域网场景SSL证书的生成及使用
概念
- CA(Certificate Authority)证书授权中心 -- 数字证书发放和管理机构
- 证书 - 为公钥加上数字签名
注: 公钥证书(PKC,Public-Key Certificate)类似于驾照,其中包括姓名、地址等个人信息和专属的公钥,然后由认证机构(CA)添加数字签名,公钥证书也简称证书(Certificate)。 - 根证书CA认证中心给自己颁发的证书,是信任链的起始点。
注:安装根证书意味着对这个CA认证中心的信任,一般商业认证机构的根证书会默认导出在浏览器中。
应用场景
- Bob生成秘钥对
- Bob在认证机构Trent注册自己的公钥
Bob将公钥发送给认证机构Trent;
认证机构收到公钥后会核实Bob身份(身份确认和认证业务准则);
核实通过后对Bob的公钥添加数字签名(证书 = 公钥 + 数字签名)。 - 认证机构Trent用自己的私钥对Bob的公钥添加数字签名并生成证书
- Alice获得Bob的证书(Bob公钥 + Trent私钥添加的数字签名)
- Alice通过Trent的公钥验证证书的数字签名,确认Bob公钥的合法性
- Alice得到Bob的公钥并使用公钥给Bob发数据
- Bob用自己的私钥解密Alice发来的密文
证书标准规范
X.509 v3版本规范(RFC5280)
格式
X.509规范中一般推荐使用PEM(Privacy Enhanced Mail)格式来存储证书相关的文件。证书文件的文件名后缀一般为.crt或.cer。对应私钥文件的文件名后缀一般为.key。证书请求文件的文件名后綴为.csr。有时候也统一用pem作为文件名后缀。PEM格式采用文本方式进行存储。一般包括首尾标记和内容块,内容块采用Base64进行编码。
** 总结 **
X.509 DER(Distinguished Encoding Rules)编码,后缀:.der .cer .crt
X.509 BASE64编码(PEM格式), 后缀: .pem .cer .crt
** 解析工具 **
openssl 工具命令:openssl x509 -in ca-cert.pem -inform pem -noout -text
公钥基础设施(PKI)
PKI 是 Public Key Infrastructure 的缩写,其主要功能是绑定证书持有者的身份和相关的密钥对(通过为公钥及相关的用户身份信息签发数字证书),为用户提供方便的证书申请、证书作废、证书获取、证书状态查询的途径,并利用数字证书及相关的各种服务(证书发布,黑名单发布,时间戳服务等)实现通信中各实体的身份认证、完整性、抗抵赖性和保密性
单向认证和双向认证
单向认证
双向认证
mkcert-局域网认证
- 生成CA根证书和私钥
mkcert -install //生成CA根证书和私钥
mkcert -CAROOT //查看生成路径
- 签发证书
mkcert 127.0.0.1 192.168.12.10 //添加证书认证地址,生成的证书和私钥用于服务端部署,认证机构通过私钥来给新生成的证书添加数字签名(生成证书)。
- 客户端导入CA根证书(认证中心公钥)添加信任认证机构
- 已信任认证机构(已导入CA根证书)的客户端可解码服务端发送过来的证书(服务端公钥 + 认证机构数字签名,机构数字签名需要机构公钥来解码)
证书可信三要素
-
由可信的CA机构签发
-
访问地址跟证书认证地址相符
-
证书在有效期内