Как проверить наличие ssl сертификата у подключения?

Подскажите, начали разрабатывать API , на процессе авторизации есть задача что бы клиент обращающийся к API обязательно иметь https соединение. Как это можно проверить входящего запроса ?
  • Вопрос задан
  • 1170 просмотров
Пригласить эксперта
Ответы на вопрос 3
2ord
@2ord
В программе не стоит это делать.
Проверка действительности безопасного соединения осуществляется веб-сервером. В конфигурации сервера (nginx/apache/etc) нужно указать что некоторый API доступен только по HTTPS. Если попытаются обратиться по HTTP, то или отказать в соединении либо перенаправить на HTTPS.
Nginx: https://serverfault.com/questions/250476/how-to-fo...
Ответ написан
Комментировать
Decadal
@Decadal
чтобы клиент обращался к вашему апи через https, нужно настроить ваш сервер так, чтобы он обрабатывал запросы на 443 порту + нужно иметь сертификат.
проверить, есть ли https на сайте у клиента, технически невозможно стандартными средствами. Да вам может прийти запрос от Curl из консоли прямо - что вы проверите? Ничего. Только если сделать большую систему в которой клиент регистрируется, указывает адрес сайта, ваш бот будет коннектиться и смотреть, работает ли https - но и то, это ненадёжно, потому что нарушить https можно простым подключением скрипта из http источника, и как вы это проверите? все страницы сканить станете?

возможно, вы имели в виду авторизацию через ssl.
Тогда вот или вот
Ответ написан
@MustDie95
Настройте в NGINX HTTPS, опцию ssl_verify_client, прокидывайте в локейшене NGINX-ом заголовки $ssl_client_verify и $ssl_client_s_dn в приложение и проверяйте там, что клиент предоставил серверу валидный сертификат и что именно в нём прописано (ФИО или назвавание организации).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы