server.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:knowledge-management 作者: dgore7 项目源码 文件源码
def create_secure_socket(self, cert_dir, host='localhost', port=8001):
        context = ssl.SSLContext() # Defaults to SSL/TLS support with PROTOCOL_TLS (best for now for compatibility)
        context.verify_mode = ssl.CERT_OPTIONAL # ssl.CERT_REQUIRED is more secure
        context.check_hostname = False # Hostname verification on certs (Dont want for now)
        context.load_default_certs(purpose=ssl.Purpose.CLIENT_AUTH) # Load the public CA certs for the server socket (need CLIENT_AUTH param)
        self.generate_server_self_cert(cert_dir)
        context.load_cert_chain(join(cert_dir, "KnowledgeManagement.crt"), keyfile=join(cert_dir, "KnowledgeManagement.key"))

        # Create the secure socket that will be listening for connections.
        # Note that the SSL handshake is NOT performed upon connection so the server can securely transfer the cert
        # if required.
        self.server_proc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.server_proc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        secureSocket = context.wrap_socket(self.server_proc, server_side=True)
        secureSocket.bind((host, port))
        print("SSL Server started on {}:{}".format(host, port))

        #self.server_negotiate_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        #self.server_negotiate_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        #self.server_negotiate_sock.bind((host, port+1))
        self.is_listening=True
        return secureSocket
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号