Для проекта домашней автоматизации я создал API (написанный на ASP.NET и размещенный в IIS) и написал собственное Android-приложение для взаимодействия с этим API. Чтобы люди не могли получить доступ к определенным конечным точкам в этом API, я хочу защитить конечные точки, которые не должны быть общедоступными. Некоторые останутся общедоступными для моей панели статистики.
У меня есть клиентский PKI-сертификат, который я приобрел в официальной и признанной правительством организации для приложения, и в него включен URL-адрес ответчика OCSP. Когда приложение обращается к защищенным конечным точкам, этот сертификат включается. Теперь последним шагом для сервера будет проверка действительности этого сертификата на входящие запросы, и я придумал следующие возможные сценарии:
Может ли IIS решить эту проблему? Я действительно нашел только OCSP stapling, который не связан с сертификатом клиента. По сути, TLS-рукопожатие должно быть отменено, чтобы API не был доступен.
Я использую HAProxy для маршрутизации запросов на правильный сервер в моей сети. Итак, если IIS невозможно, сможет ли HAProxy это сделать?
Спасибо!
IIS может проверять сертификаты клиентов с помощью OCSP. Насколько я знаю, HAProxy не будет. Лучше всего передать сертификат клиента в серверную часть IIS.
Обратите внимание, что вы используете OCSP или список отзыва сертификатов (CRL) только для проверки статуса отзыва сертификата - и ничего больше.
Следовательно, проверка сертификата по-прежнему будет состоять из проверки цепочки от сертификата до якоря доверия, проверки того, что сертификат не истек, и проверки сертификата на предмет правильного использования ключа; независимо от того, используются ли OCSP (или CRL).