所以我有一个实现服务器端代码的库。如果提供了SSLContext
,库将实现SSL。SSLContext
不需要公共CA签名(即,它接受自签名证书)
由于一些问题,在执行服务器端代码时,我需要检查服务器是否已启动。如果没有提供SSLContext
,那么很简单:只需连接到服务器的端口即可
但是,如果提供了SSLContext
,那么我需要用另一个SSL上下文“包装”连接
ssl.SSLContext()
,这在Python上默认是非常安全的>=但是我们使用的静态代码分析软件抱怨“不安全的默认设置”ssl.create_default_context()
,但除非CA文件也提供,否则它将拒绝使用自签名证书与服务器的连接(因为默认情况下create_default_context
会提取系统的CA文件)我计划这样做:
... snipped code ...
# conn is socket connection to target server host:port
ca = self.server_ssl_context.method_to_get_ca()
test_client_context = ssl.create_default_context(cafile=ca)
conn = test_client_context.wrap_socket(conn)
有没有办法从提供给库的SSLContext
中检索CA文件?(在我上面的计划中,用户提供的SSLContext
将存储在self.server_ssl_context
中)
目前没有回答
相关问题 更多 >
编程相关推荐