我正在考虑使用FastAPI框架来实现相当简单的API,但是它需要支持mTLS。 AFAIK FastAPI基于Starlette。可以在Starlette中检查客户证书吗?
答案 0 :(得分:3)
否,根据Starlette documentation,您可以使用 HTTPSRedirectMiddleware 强制使用https,但是在{{3}中没有本地实施证书验证 }。
您可以自己重新实施证书验证,但这样做非常肮脏……我认为最好是直接在Web服务器或中间件上处理证书验证。
您可以使用Starlette来uwsgi或使用treat client certificate authentification + Flask(重新)实现api,这将允许您进行客户端证书验证。 (例如Gunicorn)