出现SSLHandshakeException在Jython的2.7.0

问题描述:

当我尝试使用Jython独立2.7.0执行下面的代码,我得到javax.net.ssl.SSLHandshakeException:一般SSLEngine的问题出现SSLHandshakeException在Jython的2.7.0

import jsonrpclib 
url = 'https://userName:[email protected]/' 
ss = jsonrpclib.Server(url) 
result = ss.runCmds(1, [{ "cmd" : "<command>" } ]) 
print result 

例外:

Traceback (most recent call last): 
    File "<string>", line 4, in <module> 
    File "/jython/Lib/jsonrpclib/jsonrpc.py", line 288, in __call__ 
    return self.__send(self.__name, args) 
    File "/jython/Lib/jsonrpclib/jsonrpc.py", line 237, in _request 
    response = self._run_request(request) 
    File "/jython/Lib/jsonrpclib/jsonrpc.py", line 251, in _run_request 
    response = self.__transport.request(
    File "/jython/Lib/xmlrpclib.py", line 1264, in request 
    return self.single_request(host, handler, request_body, verbose) 
    File "/jython/Lib/xmlrpclib.py", line 1292, in single_request 
    self.send_content(h, request_body) 
    File "/jython/Lib/jsonrpclib/jsonrpc.py", line 126, in send_content 
    connection.endheaders() 
    File "/jython/Lib/httplib.py", line 997, in endheaders 
    self._send_output(message_body) 
    File "/jython/Lib/httplib.py", line 850, in _send_output 
    self.send(msg) 
    File "/jython/Lib/httplib.py", line 812, in send 
    self.connect() 
    File "/jython/Lib/httplib.py", line 1204, in connect 
    self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file) 
    File "/jython/Lib/_socket.py", line 357, in handle_exception 
    return method_or_function(*args, **kwargs) 
    File "/jython/Lib/_socket.py", line 357, in handle_exception 
    return method_or_function(*args, **kwargs) 
    File "/jython/Lib/ssl.py", line 287, in wrap_socket 
    return SSLSocket(
    File "/jython/Lib/ssl.py", line 116, in __init__ 
    self.do_handshake() 
    File "/jython/Lib/ssl.py", line 165, in do_handshake 
    raise SSLError(SSL_ERROR_SSL, e.strerror) 
_socket.SSLError: [Errno 1] General SSLEngine problem (javax.net.ssl.SSLHandshakeException: General SSLEngine problem) 

相同的代码在Python中正常工作。

这是因为您还是未指定SSL证书。 有许多方法可以绕过证书,寻找它们。在scala中寻找下面的代码,我在scala中做同样的事情。可以帮助你。

https://gist.github.com/junaidk/237e49c36b3752a29597

+0

感谢。我通过在Jython中信任所有证书(http://tech.pedersen-live.com/2010/10/trusting-all-certificates-in-jython/)来解决了这个问题。 – Kajal