Как можно реализовать mTLS в FastAPI со стратегией, при которой срок действия сертификата сервера (client-cert.pem) истекает через 10 лет, а срок действия сертификата клиента (client.p12), импортированного в веб-браузер, истекает через один год? p>
В настоящее время срок действия обоих сертификатов истекает в один и тот же день, поскольку в PKCS#12 нет флага для указания разных сроков действия.
openssl genpkey -algorithm RSA -out server-key.pem
openssl req -new -key server-key.pem -out server.csr
openssl x509 -req -days 3650 -in server.csr -signkey server-key.pem -out server-cert.pem
Client Certificate Generation
openssl genpkey -algorithm RSA -out client-key.pem
openssl req -new -key client-key.pem -out client.csr
openssl x509 -req -days 3650 -in client.csr -signkey client-key.pem -out client-cert.pem
Create PKCS#12 File for the Client
openssl pkcs12 -export -out client.p12 -inkey client-key.pem -in client-cert.pem
uvicorn.run(
"main:app" ,
host="0.0.0.0",
port=PORT,
ssl_keyfile="ssl/server-key.pem",
ssl_certfile="ssl/server-cert.pem",
ssl_ca_certs="ssl/client-cert.pem",
ssl_cert_reqs=ssl.CERT_REQUIRED,
reload=IS_DEVELOPMENT,
)
Подробнее здесь: https://stackoverflow.com/questions/785 ... expiration