【发布时间】:2020-09-01 06:28:05
【问题描述】:
我有通过 https 服务的节点应用程序。该应用程序通过 intranet 提供。我记得在 Linux 命令行上生成了 SSL 密钥,它们已经过期了。
我希望在多家公司安装此应用。它将在每个公司的 intranet 上运行,但我确实希望可以远程访问该应用程序(通过在公司防火墙上设置一些端口转发器)。
SSL 密钥很痛苦。我希望对通信进行加密,但由于我自己生成 SSL 密钥,因此用户必须先通过一些可怕的浏览器警告,然后才能开始使用该应用程序。
如果我希望这些警告消失,我是否必须为应用运行的每个 Intranet 购买单独的 SSL 密钥以防止用户看到这些警告?我可以使这些密钥的到期时间为 3000 年(因此它们实际上永远不会过期)吗?我喜欢https,但我鄙视为官方密钥付费。原因如下:
使用自行生成的密钥,通信加密与购买的密钥一样安全。然而,如果用户接受我生成的证书,浏览器会让用户认为他会感染病毒。当有时您有其他加密原因时,浏览器会将所有内容都视为网上银行。好吧,抱怨够了。
如果您有一个主要是 Intranet 应用程序的应用程序,但确实希望允许远程访问,并且该应用程序将在许多公司中安装,并且您希望该应用程序通过 HTTPS 运行,您如何学习SSL 密钥管理的负担?
加密不如网上银行重要,但我想拥有它。因此,理想情况下,我想要一个我可以自己生成的密钥(以避免费用),或者我购买 一个密钥,但我希望该密钥几乎永不过期,并且我希望它可以服务于多个我的应用程序的安装(在不同的公司)。我想要不关心域名的关键。我想要加密通信,但验证我是我所说的那个人对我来说根本不重要。
如何以避免浏览器警告的方式部署这样的应用程序?
请指教。
【问题讨论】:
-
你不能以用户友好的方式做你想做的事,因为你的 SSL 客户端是一个标准的网络浏览器。即使您愿意付费,我也不知道 CA 是否可能支持 Intranet 证书,但我不是专家。
-
@PresidentJamesK.Polk - 我想知道是否可以通过Electron 部署应用程序而不是标准网络浏览器来避免 SSL 证书警告?问题是,这些 URL 在应用程序中实际上非常有用。它们允许人们与公司内的其他人分享他们(现在)正在查看的内容。因此,完全摆脱浏览器地址栏并不理想。
-
这可行,但我对电子不熟悉,所以我不确定 SSL 系统的可配置性如何。但是,一般来说,如果您编写客户端应用程序或至少可以自定义它,那么您可以决定谁的证书是可信的。
-
您可以简单地将根证书或 CA 证书分发到公司计算机网络。在 Windows 中,您可以使用域服务器使用组策略来执行此操作。在 Linux 中,问题有点复杂,尽管那里也有集中的证书存储,例如in Fedora。然而,这不是一个编程问题,它更多的是例如。超级用户。
-
我自己也有一段时间没做过了,只知道在公司里是怎么做的。我去过的网络。
标签: node.js ssl encryption https intranet