0
我想將一個用Python編寫的簡單TCP服務器公開給互聯網。爲了驗證客戶端,我想依靠客戶端和服務器證書。 socketserver.TCPServer默認支持這種模式嗎?如果沒有,你能建議如何擴展服務器來實現相互認證嗎?我如何使用Python的socketserver.TCPServer強制執行相互認證?
我想將一個用Python編寫的簡單TCP服務器公開給互聯網。爲了驗證客戶端,我想依靠客戶端和服務器證書。 socketserver.TCPServer默認支持這種模式嗎?如果沒有,你能建議如何擴展服務器來實現相互認證嗎?我如何使用Python的socketserver.TCPServer強制執行相互認證?
默認庫不處理安全套接字(SSL/TLS)。假設你想要使用特定的庫,無論如何,here's another discussion that shows a way to do it using the OpenSSL libraries。
如果您想編寫服務器應用程序,您可能需要使用Twisted,這是一個面向事件的框架,用於在Python中編寫網絡應用程序。以下是how to enable SSL for a TCP server的相關文檔。
謝謝你的指點。我已經在'TCPServer'上看到SSL'wrap'方法來啓用SSL。但是這不會啓用相互認證,只是服務器認證。你是否碰巧知道相互認證? –
wrap_socket調用中有一個cert_reqs參數,用於控制證書是否爲可選或從另一端需要:http://docs.python.org/2/library/ssl.html#ssl.wrap_socket – GomoX
這就是我在尋找。謝謝! –