【问题标题】:No cipher suites in common没有共同的密码套件
【发布时间】:2017-07-17 09:53:09
【问题描述】:

我正在尝试让 Google Home / API.ai 与使用 RESTlet 编码的简单 Java 服务器 REST API 进行通信

我已经设置了一个自签名的开发者证书,因为 webhook 通信需要使用 HTTPS

当 webhook 尝试与我的服务器通信时,我看到一个错误,显示 SSHHandshakeException no cipher suites in common。

我已尝试向系列添加参数并添加了 enabledCipherSuites 参数以及我在网上找到的一些密码 ID,但我不确定 API.ai 支持哪些密码套件。

有没有办法接受任何请求密码,以便让 API.ai 和我的 webhook 之间的通信正常工作?

【问题讨论】:

  • 请遵循the SSL/TLS debugging guidelines 中的推荐设置,并在日志中检查发送ClientHello 的客户端可以理解的密码套件。请注意,大多数(如果不是全部)TLSv1/1.1 密码被认为是不安全的,可能会被您的框架自动删除
  • 在 SSL 调试中,它列出了不受支持的密码套件,然后它有一个名为密码套件的部分,其中看起来有很多密码套件。这些密码套件是它告诉客户它支持的密码套件吗?
  • 客户端将其在ClientHello 消息中支持的密码套件发送到服务器。服务器将选择一个它理解的或者以其他方式返回一个没有共同密码的握手服务器(你得到的错误)。您要设置哪个 SSL/TLS 版本?如前所述,大多数 TLSv1/1.1 密码或多或少不安全,可能会被您的支持框架过滤。另外,您在配置中指定了哪些密码?也许您尝试了 TLSv1.2 连接但定义了 TLSv1/1.1 密码?
  • 你也可以试试ssllabs的服务,看看你的服务器到底能做什么
  • 我无法控制客户端我刚刚在 API.ai 的 webhook 部分提供了端点,但我可以看到在 ClientHello 部分中提到了 TLSv1.2 我尝试了 ssllaabs 服务它查询了我的端点,它说“不支持安全协议”我怀疑我实际上设置了自签名证书不正确,因为我在网上找到了一些指南,并尝试了多种使用 Java 密钥库应用程序和 openssl 的方法命令

标签: restlet dialogflow-es


【解决方案1】:

我从 Google 发现您必须使用来自受信任证书颁发机构的 SSL 证书而不是自签名证书,也许有一天 API.AI 会更新他们的文档以提及这一点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-07
    • 2015-07-27
    • 1970-01-01
    • 2017-05-08
    • 2017-08-28
    相关资源
    最近更新 更多