Как выполнить проверку сертификата клиента (mTLS) в Starlette / FastAPI
Я рассматриваю возможность использования инфраструктуры FastAPI для реализации довольно простого API, но он должен поддерживать mTLS. AFAIK FastAPI основан на Starlette. Можно ли в Starlette проверить сертификат клиента?
1 ответ
Нет, согласно документации Starlette, вы можете использовать HTTPSRedirectMiddleware для принудительного использования https, но проверка сертификата изначально не реализована в Starlette.
Вы можете повторно реализовать проверку сертификата самостоятельно, но это будет очень грязно... на мой взгляд, лучше всего выполнить проверку сертификата непосредственно на веб-сервере или промежуточном программном обеспечении.
Вы можете использовать uwsgi для обработки аутентификации сертификата клиента или (повторно) реализовать свой api с помощью Flask + Gunicorn, что позволит вам выполнять проверку сертификата клиента. (например, здесь)