我有这个主要的代码,实际上是http网络服务器,可以正常工作,但是由于SSL错误而终止(请向下滚动)
class ThreadingSimpleServer(ThreadingMixIn, HTTPServer):
pass
def run():
port =80
if USE_HTTPS:
port=443
server = ThreadingSimpleServer(('0.0.0.0', port), PostHandler)
if USE_HTTPS:
import ssl
server.socket = ssl.wrap_socket(server.socket, keyfile='./ssl/key.pem', certfile='./ssl/public.pem', server_side=True)
server.serve_forever()
> File "/usr/lib/python3.6/socketserver.py", line 654, in
> process_request_thread
> self.finish_request(request, client_address) File "/usr/lib/python3.6/socketserver.py", line 364, in finish_request
> self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python3.6/socketserver.py", line 724, in __init__
> self.handle() File "/usr/lib/python3.6/http/server.py", line 418, in handle
> self.handle_one_request() File "/usr/lib/python3.6/http/server.py", line 386, in handle_one_request
> self.raw_requestline = self.rfile.readline(65537) File "/usr/lib/python3.6/socket.py", line 586, in readinto
> return self._sock.recv_into(b) File "/usr/lib/python3.6/ssl.py", line 1012, in recv_into
> return self.read(nbytes, buffer) File "/usr/lib/python3.6/ssl.py", line 874, in read
> return self._sslobj.read(len, buffer) File "/usr/lib/python3.6/ssl.py", line 631, in read
> v = self._sslobj.read(len, buffer) ssl.SSLError: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:2309)
我需要两件事:
sslopt={"cert_reqs": ssl.CERT_NONE}
但是在通过时不起作用run_forever
run_forever
我找不到的示例代码来捕获此SSL错误。在执行HTTPS多线程服务器实现时,我发现与其他语言相比缺少Python文档。工作实例很难找到。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句