Настройте слабую проверку хоста на TLS-соединении на стороне сервера с помощью Apple Secure Transport
Я хочу написать сервер, который (исключительно для тестирования!!) позволяет клиенту соединяться с сертификатом, содержащим недопустимое имя хоста. Я использую безопасный транспортный API Apple в C на Mac OS X. Я установил соединение с сервером, как:
SSLContextRef ssl_ctx_ref = SSLCreateContext (kCFAllocatorDefault,
kSSLServerSide,
kSSLStreamType);
SSLSetClientSideAuthenticate (ssl_ctx_ref, kTryAuthenticate);
С этим на месте, если клиент представляет сертификат с неверным именем хоста, SSLHandshake
завершается с ошибкой ercSSLClosedAbort (-9806).
Переходя kNeverAuthenticate
вместо kTryAuthenticate
разрешает недействительный сертификат клиента.
Вопросы:
- Является
SSLSetClientSideAuthenticate
правильная функция для использования - для включения слабой проверки имени хоста для клиентских сертификатов? - Если так, то почему
kTryAuthenticate
сделать так, почему я должен использоватьkNeverAuthenticate
?