2

我有一个带有嵌入式网络服务器的应用程序。该网络服务器现在可以通过 OpenSSL 包执行 SSL :)

现在到证书问题。这个应用程序已售出,我之所以这么说,是因为它不仅位于我拥有的服务器上——它还安装在数千台计算机上。我希望我的客户是安全的,所以我希望他们尽可能轻松地使用 SSL。现在我们创建自己的 CA,然后创建自签名证书。这意味着我们所有的客户(和他们的用户)都需要安装他们自定义的、特定于安装的 CA,或者忍受来自证书的不受信任的根警告,这两者都没有吸引力。

如何解决这个问题?

我们要么需要:

  1. 让安装我们的 CA 变得非常简单(浏览器故意让这些 CA 变得非常困难——很多可怕的警告对话框)
  2. 不知何故,所有这些客户证书都由浏览器认可的 CA 合法签名。
  3. 强迫客户去购买自己的证书并安装它

我不知道我们将如何做#1,所以我们正在看#2。#3几乎是不可能的。

我们突然想到,我们可以购买一个 SSL 证书,并将其与我们的产品一起提供——是的,每个人都在使用相同的证书,并且证书和私钥可能/将会泄露到公共域......嗯。 ..出于责任的缘故,可能不希望我们的名字出现在上面...

我想问题在于我们一开始就违背了 CA 的目的。有关如何使用户轻松安全地进行此操作的任何想法?(假设中间人攻击不是问题——真的有记录吗??)

4

1 回答 1

1

对此没有简单易行的解决方案。如果这很容易解决,那么 SSL 证书系统的安全性就会很差。

正如您所说,您的选择仅限于如何避免浏览器警告。根据应用程序,每种方法都可能很好。

1.在客户端浏览器上安装根CA

如果应用程序在内部使用,或者如果客户端需要安装一些东西来使用应用程序,这是一个合理的解决方案。这可能也是成本最低的解决方案,因为不需要额外费用。但是,如果该应用程序将被广大人群使用,那么这不是一个合理的解决方案。

2.购买商业根CA签名证书

如果您的应用程序对 Internet 开放,这很可能是必需的。但是,如果您是在销售应用程序而不是简单地提供其服务,那么出于责任原因,这可能不是您所提到的。

3. 让客户购买自己的商业根CA签名证书

如果您的应用程序被出售以供客户使用,这可能是合理的。您可以使用自签名证书作为基本选项来提供应用程序,并提供给您的客户使用他们的证书(如果他们愿意)。许多公司的网站已经拥有 SSL 证书。

于 2009-04-13T17:41:07.560 回答