有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java错误:140770FC:SSL例程:SSL23_GET_SERVER_HELLO:未知协议

我目前正在尝试测试在Cloudera Hadoop环境中为实现加密洗牌的安全性而实施的更改

我已经创建了证书和密钥库,并将它们保存在适当的位置

我正在测试TaskTracker的HTTPS端口50060

当我在那个端口上做卷曲时,我得到的是错误响应

ubuntu@node2:~$ curl -v -k "https://10.0.10.90:50060"
* About to connect() to 10.0.10.90 port 50060 (#0)
*   Trying 10.0.10.90... connected
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
* Closing connection #0
curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

当我向OpenSSL客户端进行检查时,我得到了以下响应

 ubuntu@node2:~$ openssl s_client -connect 10.0.10.90:50060
CONNECTED(00000003)
139749924464288:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:749:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 225 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

我不知道是什么导致了这个问题

有什么我遗漏的吗

PS:我已经更新了ca-certificates.crt文件,还将服务器.crt文件保存在/usr/share/ca-certificates/mozilla


共 (2) 个答案

  1. # 1 楼答案

    error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

    10.0.10.90:50060上似乎没有SSL/TLS服务器在侦听。有一个服务器正在监听,但它不是SSL/TLS

    当通过端口80(而不是443)连接到网关时,我可以复制它

    $ openssl s_client -connect 192.168.1.1:80
    CONNECTED(00000003)
    140735109476828:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:787:
     -
    no peer certificate available
     -
    No client certificate CA names sent
     -
    SSL handshake has read 7 bytes and written 517 bytes
     -
    New, (NONE), Cipher is (NONE)
    Secure Renegotiation IS NOT supported
    Compression: NONE
    Expansion: NONE
     -
    

    如果使用-debug标志,您将在OpenSSL试图解释为SSL/TLS协议数据的响应中看到HTTP

    $ openssl s_client -connect 192.168.1.1:80 -debug
    CONNECTED(00000003)
    write to 0x7fbf58422b90 [0x7fbf58811800] (348 bytes => 348 (0x15C))
    0000 - 16 03 01 01 57 01 00 01-53 03 03 64 1d 01 29 f0   ....W...S..d..).
    ...
    0150 - 03 02 01 02 02 02 03 00-0f 00 01 01               ............
    read from 0x7fbf58422b90 [0x7fbf58816e00] (7 bytes => 7 (0x7))
    0000 - 48 54 54 50 2f 31 2e                              HTTP/1.
    140735203164636:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794:
    
  2. # 2 楼答案

    对于任何有此问题的人:

    error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol.

    我的问题是curl默认使用ipv6而不是ipv4。终端服务器未正确配置以响应ipv6,因此观察到了相同的问题陈述。确保curl正在使用ipv4,或者您的服务器可以使用ipv6