TLS 失败时
Coddy 使用终端进行网络通信 课程的第 41 课,共 47 课。
TLS 故障从外部看起来都一样,但实际上完全不同。
证书已过期。这种情况很常见,也很普通,续期即可解决。名称不匹配。你请求的是一个主机,但证书对应的是另一个主机。未知的颁发机构。通常是内部服务使用了自己的证书,而你的机器没有理由信任它。完全没有 TLS,你之前已经见过这种情况,退出码是 35。
还有 -k,它会告诉 curl 完全跳过这些检查,仍然继续连接。这样错误就消失了,但身份保证也被放弃了,只有加密仍然保留。你与一个尚未确认身份的人进行了私密对话。
在你控制的测试环境中试用时,这样做没问题。但在重要场景中用它来屏蔽警告,会移除你原本依赖的保护。还是修复证书吧。
挑战
困难比较同一端口在两种协议下的情况。
- 创建包含
plain的index.html,并在端口 9130 上提供该文件夹 - 通过
http://获取它,并打印http=和 curl 的退出代码 - 通过
https://获取同一个 URL,并打印https=和它的退出代码
预期输出:
http=0
https=35同一台机器、同一个端口、同一个文件。只有协议发生了变化。
亲手试试
终端
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
使用终端进行网络通信中的所有课
自己练习: Terminal 在线编辑器