SSL握手未通过“证书未知”

时间:2017-08-04 15:15:37

标签: ssl tcp https handshake

我们有一个当前通过HTTP协议运行的应用程序。我们的目标是将其迁移到HTTPS。我们已经进行了必要的更改,但是在登录到应用程序期间,我收到了“peer not authenticated”错误消息。

我对SSL世界完全陌生,所以我谷歌并且已经捕获了Wireshark跟踪,通信如下所示:

  1. 客户端将[SYN]发送到服务器。
  2. 服务器向客户端发送[SYN,ACK]。
  3. 客户端向服务器发送[ACK]。
  4. 客户端将“客户端Hello”消息发送给服务器。
  5. 服务器发送其公钥,并显示消息“服务器Hello,证书,服务器Hello完成”
  6. 警报61,级别致命,描述:证书未知//在此处失败。
  7. 请分享您可能出错的输入。我们被困在这里,无法继续前进。

1 个答案:

答案 0 :(得分:0)

<强>已更新

这是一个奇怪的错误。 Certificate Unknown 通常应附带警告代码 46 而不是 61

如果您看到,Alert Protocol (RFC 5246)

中未提及 SSL警报61
  enum {
      close_notify(0),
      unexpected_message(10),
      bad_record_mac(20),
      decryption_failed_RESERVED(21),
      record_overflow(22),
      decompression_failure(30),
      handshake_failure(40),
      no_certificate_RESERVED(41),
      bad_certificate(42),
      unsupported_certificate(43),
      certificate_revoked(44),
      certificate_expired(45),
      certificate_unknown(46),
      illegal_parameter(47),
      unknown_ca(48),
      access_denied(49),
      decode_error(50),
      decrypt_error(51),
      export_restriction_RESERVED(60),
      protocol_version(70),
      insufficient_security(71),
      internal_error(80),
      user_canceled(90),
      no_renegotiation(100),
      unsupported_extension(110),
      (255)
  } AlertDescription;

不看痕迹,很难进一步调查。

看起来客户端不信任服务器Hello 中提供的服务器证书

我建议使用 cURL.exe 选项 -v 对此进行测试。