我在客户端上使用Python请求与服务器建立TLS连接。这是我正在使用的代码:
import ssl
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager
from requests.packages.urllib3.util import ssl_
CIPHERS = (
'RSA+AES'
)
class TlsAdapter(HTTPAdapter):
def __init__(self, ssl_options=0, **kwargs):
self.ssl_options = ssl_options
super(TlsAdapter, self).__init__(**kwargs)
def init_poolmanager(self, *pool_args, **pool_kwargs):
ctx = ssl_.create_urllib3_context(ciphers=CIPHERS, cert_reqs=ssl.CERT_REQUIRED, options=self.ssl_options)
print(ssl.PROTOCOL_TLS)
self.poolmanager = PoolManager(*pool_args,
ssl_context=ctx,
**pool_kwargs)
session = requests.session()
adapter = TlsAdapter(ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1)
session.mount("https://", adapter)
r = session.request('GET', 'https://awesome.com', verify='/etc/ssl/certs/ca-certificates.crt')
print(r)
当我在Wireshark中检查客户端问候消息时,我在客户端提供的密码列表中看到另一个密码“TLS_EMPTY_RENEGOTIATION_INFO_SCSV”。
谁能告诉我这个密码是什么以及它有什么用?有没有办法从客户端问候消息中发送的密码列表中删除它?
我尝试查找此问题,但找不到合适的答案。
谢谢!