c# - 如何将 SSL 证书更新发送到正在运行的应用程序?
问题描述
我的公司有一个在本地使用并作为 Windows 服务安装的软件。我们现在使用 .NET core 2.1 向它添加一个 WebAPI。这个 API 应该使用 SSL 保护,如果我们购买证书,它最多可以使用两年。有没有办法自动更新用于 HTTPS 的证书?一些客户购买了软件,但并没有像我们希望的那样经常升级。我们如何为他们提供新证书?
07/03 更新:我们的本地解决方案已在后端作为服务工作了 6 年(每年有两次重大更新)。现在我们正在这个服务中集成一个 webapi。这里没有 IIS,只有一个自托管的 webapi。我们的服务可以使用我们自己的 SSL 证书,但是当它过期时我们需要以某种方式替换它。
解决方案
如何将 SSL 证书更新发送到正在运行的应用程序?
如果服务器证书由他们信任的 CA 签名,则无需将服务器证书分发给客户端设备。
理想情况下,客户端系统应该信任具有很长有效期(例如 20 年)的证书颁发机构 (CA)。然后,该 CA 向网络服务器发布短期证书(例如 6-12 个月)。客户端将信任这些证书,因为它们是由他们信任的 CA 签名的。
这就是当今公共网络的运作方式。CA 是拥有大型保险单的公司,例如 Verisign,操作系统或浏览器供应商确定哪些 CA 能够胜任并包含在他们通过自己的机制(例如自动更新)管理的证书包中。
因此,一种选择是简单地从公共 CA 购买 HTTPS 证书。
您也可以是您自己的 CA,但您需要管理保护高度敏感的根 CA 密钥,并将您的 CA 证书分发到所有客户端设备。
推荐阅读
- python - Python Apache Beam,固定 Windows 究竟是如何工作的?
- .htaccess - 将图像 url 重定向到另一个域 htaccess
- php - RegEX : 解析文本以获取完全匹配的字符串或末尾带有下划线的相同字符串
- ssh - ssh 到另一台主机并运行命令
- hibernate - 在多对多关系中删除时违反参照完整性约束
- django - 无法在 Django 管理面板的应用程序中添加对象
- r - R中组内所有行之间的数值差异
- vb.net - 从 .HEIC 照片 VB .NET 中获取 DataTaken
- java - 当鼠标在它上面时,JLabel 下的黄色窗口-> 如何删除?
- python - BFS与python,当endPoint远离startPoint时找不到解决方案