Обработка самоподписанных сертификатов в URLAuthenticationChallenge в Linux - PullRequest
0 голосов
/ 03 апреля 2019

Чтобы доверять самоподписанному сертификату в 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?

...