当我们的证书由“让我们加密”自动更新时,需要重新启动我们的web服务才能使用新的证书。我面临两个挑战:(1)如何自动检测证书何时更新;(2)如何使用新证书而不需要重新启动web服务。
我们将Kestrel配置为支持appsettings.json文件中的https。类似于:
HttpsInlineCertAndKeyFile": {
"Url": "https://localhost:5002",
"Certificate": {
"Path": "<path to .pem/.crt file>",
"KeyPath": "<path to .key file>",
"Password": "$CREDENTIAL_PLACEHOLDER$"
}
}我们正在开发c# .net核心6。
发布于 2022-07-06 17:40:48
有可能在不重新启动的情况下重新加载证书。基本上有一个回调机制,为每个请求加载证书。
.UseKestrel(options =>
{
options.ConfigureHttpsDefaults(o =>
{
o.ServerCertificateSelector = (context, dnsName) =>
{
return GetCertificateFromPath();
};
});
});由于它为每个请求调用了这个GetCertificateFromPath方法,所以您必须在GetCertificateFromPath()方法中缓存证书,并且只在更改证书时读取证书。
通过检查修改的日期或其他什么方式,应该是可能的。
https://stackoverflow.com/questions/72789352
复制相似问题