Sobes.tech
Назад к вопросам
Junior — Middle
87

У вас есть опыт использования или сопровождения самоподписанных SSL-сертификатов?

Компании, где спрашивали
Touch Instinct

Ответ от нейросети

sobes.tech AI

Самоподписанные SSL-сертификаты создаются и подписываются самим владельцем, а не доверенным центром сертификации (CA). В iOS при использовании таких сертификатов часто возникает проблема с доверием — система по умолчанию не доверяет таким сертификатам, и соединение считается небезопасным.

Чтобы использовать самоподписанные сертификаты в iOS-приложениях, обычно нужно:

  • Добавить сертификат в доверенные на устройстве (например, через настройки или MDM).
  • В коде реализовать кастомную проверку сертификата, например, через делегаты URLSession, где можно вручную проверить сертификат и разрешить соединение.

Пример проверки сертификата в URLSessionDelegate:

func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    if let serverTrust = challenge.protectionSpace.serverTrust {
        // Здесь можно проверить serverTrust, например, сравнить с локальным сертификатом
        let credential = URLCredential(trust: serverTrust)
        completionHandler(.useCredential, credential)
    } else {
        completionHandler(.performDefaultHandling, nil)
    }
}

Важно помнить, что использование самоподписанных сертификатов подходит для разработки и тестирования, но в продакшене лучше использовать сертификаты от доверенных CA для безопасности и удобства пользователей.