证书与信任
Coddy 使用终端进行网络通信 课程的第 40 课,共 47 课。
在握手期间,服务器会出示一份证书:它是一份说明证书对应哪个主机、何时过期以及由谁为它背书的文档。
任何人都可以生成一份声称对应任意主机的证书,因此关键在于签名。证书由证书颁发机构签名,你的计算机出厂时就附带一份它信任的颁发机构列表:
ls -l /etc/ssl/certs/ca-certificates.crt你的客户端会检查三件事:证书是否由列表中的某个颁发机构签发,是否已过期,以及证书上的名称是否与您请求的主机匹配。任何一项检查失败,连接都会中断。
最后这项检查解释了为什么通过 IP 访问的内部服务即使证书有效也经常会失败:证书对应的是一个名称,而你请求的是一个数字。
挑战
中等查找你的机器信任的证书颁发机构列表。
检查 /etc/ssl/certs/ca-certificates.crt 是否存在,如果存在则打印 ca bundle present,否则打印 missing。
预期输出:
ca bundle present你建立的每个 TLS 连接都会根据此文件进行检查。
亲手试试
终端
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
使用终端进行网络通信中的所有课
自己练习: Terminal 在线编辑器