Я пытаюсь преобразовать код Python:
def create_socket(self):
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
if self.ssl:
self.socket = ssl.wrap_socket(self.__socket, ssl_version=ssl.PROTOCOL_SSLv23, cert_reqs=ssl.CERT_NONE)
в быстрый код, и у меня возникают проблемы с его работой.Кажется, проблема в том, что я не могу найти эквивалентный способ сказать cert_reqs = ssl.CERT_NONE
Вот что у меня есть:
let q = DispatchQueue.main
let socket = NWConnection(host: "localhost", port: 2222, using: .tls)
socket.start(queue: q)
socket.stateUpdateHandler = {(newState) in
switch(newState) {
case .ready:
print("ready")
case .waiting(let error):
print("waiting")
print(error)
case .failed(let error):
print("fail")
print(error)
case .setup:
print("setting up")
case .preparing:
print("prep")
case .cancelled:
print("cancelled")
}
}
Но он выдает следующий вывод:
prep
[BoringSSL] boringssl_context_alert_callback_handler(3747) [C1.1:1[0x7fe5385070e0] Alert level: fatal, description: certificate unknown
[BoringSSL] boringssl_context_error_print(3699) boringssl ctx 0x600000ba0120: 140622469049032:error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED:/BuildRoot/Library/Caches/com.apple.xbs/Sources/boringssl_Sim/boringssl-109.202.1/ssl/handshake.cc:372:
[BoringSSL] boringssl_context_get_error_code(3519) [C1.1:1][0x7fe5385070e0] SSL_AD_CERTIFICATE_UNKNOWN
fail
-9808: Optional(bad certificate format)