我使用通过以下命令生成的自签名证书:
sudo make-ssl-cert generate-default-snakeoil
Run Code Online (Sandbox Code Playgroud)
并将其复制到我的主目录。如果我在服务器端运行以下命令:
from socket import socket, AF_INET, SOCK_STREAM
import ssl
def main():
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.verify_mode = ssl.CERT_REQUIRED
context.load_cert_chain('/home/hfurmans/ssl-cert-snakeoil.pem', '/home/hfurmans/ssl-cert-snakeoil.key')
host = "myipaddress"
port = 5432
my_socket = socket(AF_INET, SOCK_STREAM)
my_socket.bind((host, port))
my_socket.listen(1)
my_socket = context.wrap_socket(my_socket, server_side=True)
conn, addr = my_socket.accept()
print("Connection from: " + str(addr))
data = conn.recv(1024).decode()
print(data)
print("from connected user: " + str(data))
data = str(data).upper()
print("sending: " + str(data))
conn.send(data.encode())
conn.close()
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
我替换了我的 IP 地址。但是它们在服务器和客户端上是相同的。这是客户端代码:
import …Run Code Online (Sandbox Code Playgroud)