【问题标题】:Can ssl handshake be established only with client certification validation instead of server certificate validation?ssl握手只能通过客户端证书验证而不是服务器证书验证来建立吗?
【发布时间】:2019-12-02 08:06:30
【问题描述】:

我想通过我的浏览器使用 ssl 与 localhost 应用程序通信。此处浏览器(充当客户端)将提交证书而不是本地主机应用程序(充当服务器)。这种场景下能否建立ssl?所以最后归结为问题陈述是否可以通过服务器验证客户端证书和客户端不验证服务器证书来建立 ssl 通信。

【问题讨论】:

  • 您可以使用各种 API 来实现这一点,方法是颠倒举证责任,但不能使用浏览器。
  • @user207421 通过 websockets 做这件事怎么样?
  • 您需要访问底层 TLS/SSL 套接字及其 API,无论是 Java 还是 OpenSSL 或其他什么,因此您可以在连接之前将其置于“服务器模式”,并且您需要监听套接字,或者接受的套接字,当然也处于“客户端模式”。我不知道你是否有能力完成这些。

标签: sockets ssl websocket tcp


【解决方案1】:

浏览器内的 SSL/TLS 实现不支持这种情况。使用 SSL/TLS 的浏览器始终需要服务器证书,以确保浏览器正在与预期的服务器(如 URL 中指定)而不是中间人进行通信。除此之外,首先不清楚您希望通过这种设置实现什么 - 也许对于您未知的用例有更好的设计。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多