我们需要在 ASP.NET Core 2.X 应用程序中实现客户端证书有效性检查,该应用程序是 dockerized 并在 Linux 下运行。特别是,我们对证书的撤销状态感兴趣。这种验证是通过使用X509Chain实现的,并且可以按预期工作。
var chain = new X509Chain();
var chainPolicy = new X509ChainPolicy
{
RevocationMode = X509RevocationMode.Online,
RevocationFlag = X509RevocationFlag.EntireChain
};
chain.ChainPolicy = chainPolicy;
...
Dockerfile
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
....
但是,我们对我们的应用程序的 CRL 缓存的到期时间有要求。看起来 Linux(我假设它是debian for mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim
image)默认缓存 CRL - 第一个请求持续约 150 毫秒,并且几乎立即处理以下请求(不幸的是,我找不到可用信息来确认这一观察结果)。
Linux(debian)中 CRL 缓存的默认时间是多少?有可能改变它吗?有没有办法检查缓存的 CRL 列表?
是否可以像在 Windows 中一样清理 CRL 缓存?
certutil -urlcache * delete
Linux 证书 util dirmngr似乎不是mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim
ASP.NET Core 2.2 应用程序基础映像的一部分。