我的群集中有两个WebAPI应用程序。两个应用都在每个节点上运行。他们都使用asp.net核心和Weblistener。根据建议here我已将它们设置为分别在端口80和443上侦听http和https。
使用相同的证书来保护Https,并使用所讨论的here的er,端点绑定(?)进行设置。我使用自签名证书可以正常工作,但是在将证书更改为合适的证书时出现了问题。有效地模拟证书翻转。
我将新证书添加到密钥保管库并将其部署到群集。在使用新证书引用重新发布我的应用程序时,它会因this错误ConfigurePortCertificate: httpsPort=443, certStoreName My, certfindvalue {SSLCertFingerPrint}, error AlreadyExists
而失败。现在哪种有意义..
由于两个应用程序都在每个节点上运行,并且我们尝试更新其中一个节点,因此会发生以下情况:
我找到的唯一解决方法是将使用https:443上的Cert_A的每个系统脱机,并使用新的Cert_B重新发布所有应用。
这是非常不可接受的(因为,我显然做错了)必须将系统的主要部分放下来更改证书。
我有什么选择?
Kestrel是否以不同方式管理https?我会通过做类似的事情来讨论类似的问题而不是在本地托管证书(即通过VM配置),我可以从keyvault请求最新的证书。我可以向Kestrel提供由密钥保险库(获取最新证书)的无版URL提供的证书。然后我想我需要做的就是让服务重新启动(例如发布升级)并且他们开始使用最新的证书。但是,据我所知,Kestrel not currently "supported"用于面向外部的Web服务器。
我是最好的
或者我的问题是否有一个简单的解决方案,我没有意识到?
提前致谢!
我为任何不正确的术语道歉,请纠正我。
答案 0 :(得分:0)
ASF中内置了reverse proxy。它可以配置为使用SSL并执行SSL终止。这是一个非常简单的解决方案。
http(s):反向代理可以配置为接受HTTP或HTTPS 交通。在HTTPS流量的情况下,SSL终止发生在 反向代理。由反向代理转发的请求 集群中的服务是通过http。请注意,HTTPS服务是 目前不支持。