我有一个两岁就要完成的项目。两年前开始开发时,我决定将与ASP.NET Core的数据保护API一起使用。到目前为止,这还不错,但我面临的问题是,数据保护所使用的SSL证书将在一个月内过期,其指纹被硬编码为数据保护。无论如何,我都要更换它,因为它要过期了,所以我想弄清楚如何接近它.
以下是我目前如何在项目中配置数据保护:
public static IServiceCollection AddApplicationAmazonSsm(
this IServiceCollection services) => services.TryAddAWSService<IAmazonSimpleSystemsManagement>();
public static IServiceCollection AddApplicationDataProtection(
this IServiceCollection services) {
services.AddApplicationAmazonSsm()
.AddDataProtection()
.SetApplicationName("XYZ")
.ProtectKeysWithCertificate("ABC...")
.PersistKeysToAWSSystemsManager("data-protection",
o => {
o.TierStorageMode = TierStorageMode.AdvancedUpgradeable;
});
return services;
}该项目被部署到分期和生产环境中。每个环境都有自己的SSL通配符证书:
*.beta.xyz.com.
*.xyz.com.
但是,每个环境都共享数据保护SSL证书:data-protection.xyz.com。
我计划做的是通过让data-protection.xyz.com SSL证书过期来简化设置,并切换到使用暂存和生产SSL证书来进行数据保护。通过这种方式,我可以从管理三个SSL证书变为只管理两个SSL证书,无论如何,我已经永久地更新了两个证书。我计划通过为指向暂存或生产SSL证书指纹的每个环境添加一个新的Parameter值来使拇指指纹可配置。由于服务器夜间重新启动,它将在引导并在所有应用程序实例中应用更新的参数值时看到更新的参数值。
我有以下问题:
这是否会产生一般影响,即只签出当时已登录的任何人(有一个带有旧证书的有效cookie ),还是会导致application?
据我所知,数据保护应该只会影响用户登录,如果每个人都被简单地签了出去,我会同意的,因为他们可以重新登录。提前感谢!
对于其他上下文,这是一个运行在WindowsServer2019服务器上的ASP.NET核心5项目。
发布于 2021-08-09 21:35:07
更新后续行动
当我实际将项目发布到暂存服务器时,我实际上遇到了一个重定向循环,并注意到数据保护只是一次又一次地创建新密钥。经过一番调查后,我记得两年前我遇到了这个带着原始证书的人,问题是许可问题。因此,在证书管理控制台中,我给了每个人对证书的权限,并且所有这些都按预期的方式开始工作。
因此,请记住对证书设置正确的权限,以便ASP.NET核心能够实际访问它。我选择给每个人权限是因为有七个应用程序可以访问它,而且我不想单独添加每个应用程序的过程。
我试了一下,答案是似乎什么也没发生。对我的问题:..。
会不会产生一个普遍的影响,即只签出当时已注册的任何人(有一个带有旧证书的有效cookie ),还是会导致应用程序中其他地方的一些其他负面更改?
它似乎没有任何负面影响,事实上,当我更改证书指纹、重建项目和重新加载已在用户中签名的页面时,它甚至都没有将用户签出去。
,在我计划进行更改之前,还有什么是我应该知道的吗?
看上去不像。
是否应该在更改后的一段时间内将旧的SSL证书保存在服务器上,并且它已经过期?
我不知道,但如果我这么做,它不会伤害任何东西,所以我会的,最后,当新的证书使用了一段时间后,我会删除它。
https://stackoverflow.com/questions/68522318
复制相似问题