我有一个带有嵌入式网络服务器的应用程序。该网络服务器现在可以通过 OpenSSL 包执行 SSL :)
现在到证书问题。这个应用程序已售出,我之所以这么说,是因为它不仅位于我拥有的服务器上——它还安装在数千台计算机上。我希望我的客户是安全的,所以我希望他们尽可能轻松地使用 SSL。现在我们创建自己的 CA,然后创建自签名证书。这意味着我们所有的客户(和他们的用户)都需要安装他们自定义的、特定于安装的 CA,或者忍受来自证书的不受信任的根警告,这两者都没有吸引力。
如何解决这个问题?
我们要么需要:
- 让安装我们的 CA 变得非常简单(浏览器故意让这些 CA 变得非常困难——很多可怕的警告对话框)
- 不知何故,所有这些客户证书都由浏览器认可的 CA 合法签名。
- 强迫客户去购买自己的证书并安装它
我不知道我们将如何做#1,所以我们正在看#2。#3几乎是不可能的。
我们突然想到,我们可以购买一个 SSL 证书,并将其与我们的产品一起提供——是的,每个人都在使用相同的证书,并且证书和私钥可能/将会泄露到公共域......嗯。 ..出于责任的缘故,可能不希望我们的名字出现在上面...
我想问题在于我们一开始就违背了 CA 的目的。有关如何使用户轻松安全地进行此操作的任何想法?(假设中间人攻击不是问题——真的有记录吗??)