Чтобы доверять самоподписанному сертификату в macOS, я реализовал следующий обработчик URLSessionDelegate
:
func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
// trust certificate
let cred = challenge.protectionSpace.serverTrust.map { URLCredential(trust: $0) }
completionHandler(.useCredential, cred)
}
При компиляции для Linux я обнаружил, что serverTrust
недоступно :
/package/Sources/ResterCore/Request.swift:255:38: error: value of type 'URLProtectionSpace' has no member 'serverTrust'
Я надеялся создать необходимые учетные данные без serverTrust
, но другие способы создания URLCredential
также недоступны :
// TODO: We have no implementation for Security.framework primitive types SecIdentity and SecTrust yet
Кто-нибудь знает способ обойти это в Linux? То есть Есть ли способ принять самоподписанный сертификат в Linux через URLSession
?