【发布时间】:2018-12-20 21:00:45
【问题描述】:
我了解,当单个服务器托管多个主机名时,ssl.SSLContext() 对象中的wrap_socket 函数中的server_hostname 参数(如下例所示)可用于识别主机名。可以使用server_hostname 还是使用server_hostname 参数的值不是主机名字符串而是IPv4 地址字符串是否有意义?
1) 是否有任何用途或优势使我的连接更准确(对于指定的 IP)?
2) 服务器是否可以托管多个虚拟 IP,以便在 server_hostname 中指定 IPv4 地址来增加价值?
这个例子来自pythonwebsites
import socket, ssl
context = ssl.SSLContext()
context.verify_mode = ssl.CERT_REQUIRED
context.check_hostname = True
context.load_default_certs()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = context.wrap_socket(s, server_hostname='www.verisign.com')
ssl_sock.connect(('www.verisign.com', 443))
【问题讨论】:
标签: python sockets ssl network-programming tls1.2