Назад к вопросам
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 для безопасности и удобства пользователей.