我们有一个供应用程序使用的 Web 服务,开发人员需要与 Web 服务建立 https 连接。由于这是一个内部 Web 服务,您会使用自签名证书吗?
答案1
我不会创建自签名证书,而是创建一个本地根 CA,然后从中生成 SSL 证书,确保所有内部系统都有根 CA 的公钥副本。
以这种方式生成的密钥除了普通的 HTTPS 之外还有许多用途,它们还可以用于 OpenVPN、POP3S、SMTPS 等,甚至用于个人 SMIME 帐户。
为您的组织拥有一个根 CA 要比被公认的 CA 勒索要便宜得多,后者会向您想要证书的每台服务器收取费用,如果您想将同一个证书放在负载平衡群集中的多台服务器上,他们还会向您收取“许可费”。
答案2
尝试 CAcert. 它们是免费的,你只需要安装根目录。比自签名证书高出一步。
答案3
如果成本是一个问题,并且您以 Windows 为中心,那么正如 Denny 先生所建议的那样,请使用 Microsoft 证书服务并将证书部署为默认域 GPO 的一部分。您可能需要三个系统,但也可以采用虚拟机。您需要根 CA,它只应用于为中间 CA 颁发证书。您应该有一个中间 CA 作为企业 CA,然后将第三个作为“独立”CA,这样您就可以向非域资产颁发证书。
如果您拥有大量客户,并且规模足够大,您可以考虑从第三方解决方案中获取根证书,并从从该第三方获取证书的 CA 颁发您自己的证书。这样,您就不必部署 CA 的证书。例如,有一个解决方案来自GeoTrust。
答案4
假设您的桌面有一个 Windows 域,请在公司内部设置一个 Windows CA,它将通过 AD 自动获得公司所有计算机的信任。这样,您就可以向所需的任何内部应用程序颁发证书,而无需购买证书。