Verify Server Cert 选项


注意:

这是一个对于数据安全非常重要的选项,请不要轻易的禁用它。 除非你明确的知道禁用这个选项的含义。

当然,如果你对于这个选项,有任何不确定的地方,欢迎联系我们.

高级配置: Verify Server Cert


添加账号页面中点击相应的 Advanced 按钮,打开高级设置对话框, 如下图:

SSL Verify Server Certificate

什么时候应该设置启用该选项?


当你使用 S3 Explorer 连接到常见的知名 S3 服务商的时候,绝大部分时间都不需要关闭这个配置。 你应该总是保持它处于开启状态!

这个选项 默认情况 下是处于 开启 状态的。

这里说的常见的知名 S3 服务商包括但不限于:

  • Amazon S3
  • Aliyun OSS
  • Tencent COS
  • Huwei OBS
  • 其他未在这里列出的知名 S3 服务商

因为他们的服务器端的证书都是知名的 CA 签署的,在你的平台上(Window, Linux, macOS) 它应该是默认会被信任的。

因此保持它处于开启状态,你应该能成功的连接到对应的服务器。 这也是为什么它默认处于开启状态的原因

什么时候应该设置禁用该选项?


通常当你处于如下场景的时候,你需要关闭这个选项,以连接到你的 S3 服务器:

  • 你或者你的企业自己搭建了相应的 S3 服务器,但是由于是内部使用或者作为测试服务器使用。
  • 自己部署了 MINIO 的服务器。
  • 你所使用的系统过于老旧,导致系统中自带的 CA 证书没有及时更新,导致相应的服务器证书无法被当前系统所信任。
    • 对于 Windows: 可能的情况是你使用一个非常老旧的系统,微软官方已经不再提供更新
    • 对于 Linux: 你系统中的 OpenSSL 附带的 CA 证书过于老旧。

在上述的情况下,如果保持该选项开启,你可能会遇到无法连接的错误。 S3 Explorer 报告类似: 校验服务器端证书错误 的消息。

为了能正常的连接到 S3 服务器,你需要禁用该选项,以成功的连接到服务器。

禁用该选项意味着什么?


禁用该选项将导致你的数据存在很大的安全风险。

以下枚举一些可能的危害:

1. 中间人攻击 (Man-in-the-Middle, MitM)

这是最直接也是最严重的风险。证书验证的根本目的是确保你正在与你声称要连接的服务器进行通信。如果你禁用证书验证,那么攻击者可以在你和服务器之间建立一个代理连接,并伪装成服务器。

  • 攻击过程: 攻击者拦截你的连接请求,并向你发送一个伪造的证书。由于你禁用了证书校验,你的客户端会接受这个伪造的证书,并建立一个加密会话。同时,攻击者再与真正的服务器建立一个连接。
  • 后果: 攻击者可以解密、查看、修改你发送的所有数据(如用户名、密码、个人信息、信用卡号等),然后再重新加密并发送给服务器。你的通信内容将完全暴露在攻击者面前。

2. 身份欺骗 (Identity Spoofing)

证书是服务器身份的数字证明。如果客户端不验证证书,就无法确定服务器的真实身份。攻击者可以搭建一个恶意网站或服务,其域名与合法服务非常相似,并诱骗用户连接。禁用证书验证使得这种欺骗变得轻而易举。

3. 数据完整性风险 (Data Integrity Risk)

虽然 TLS/SSL 协议本身会确保数据在传输过程中的加密和完整性,但如果服务器的身份被中间人伪造,那么攻击者可以篡改会话密钥,或者在数据传输过程中注入恶意内容。由于你无法信任连接的另一端,数据在“安全”加密之前就已经被篡改了。

4. 信任链中断 (Trust Chain Breakage)

正常的证书验证过程会检查一个完整的信任链:客户端信任根证书颁发机构 (CA),CA 签发中间证书,中间证书再签发服务器证书。禁用证书验证等于完全绕过了这个信任模型。这使得任何自签名或无效的证书都可以被接受,让攻击者可以轻松地用一个伪造的证书来欺骗客户端。

5. 其他的安全风险


总结与建议


禁用证书校验的行为,就像是在一个充满骗子的市场里,你蒙上眼睛去和别人交易。虽然你可能最终拿到了商品(数据),但你完全不知道交易对手是谁,也不知道他是否在交易过程中对你的钱包(数据)动了手脚。

只有在以下 极少数、特殊且受控 的情况下,才可能考虑禁用证书校验:

  • 仅用于测试和开发环境: 在内部测试中,你可能需要连接到使用自签名证书的服务器,且你知道不会有外部攻击者介入。
  • 明确知晓风险且为临时操作: 例如,在调试网络问题时,需要暂时排除证书问题以定位故障,但必须在调试完成后立即恢复证书校验。

在任何生产环境、公共网络或处理敏感数据的场景下, 绝对不应该禁用证书校验。正确的做法是,如果服务器证书无效,应该找出证书无效的原因(例如,证书过期、域名不匹配、信任链不完整等),并修复它,而不是简单地禁用安全功能。