![哪些 SSL 证书可以在没有中间证书的情况下工作?](https://linux22.com/image/647040/%E5%93%AA%E4%BA%9B%20SSL%20%E8%AF%81%E4%B9%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%B2%A1%E6%9C%89%E4%B8%AD%E9%97%B4%E8%AF%81%E4%B9%A6%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
我们需要部署一个内置有自己的 SSL 证书的服务器应用程序。这将被推送到未知数量的服务器上,这些服务器会时断时续。
我们可以使用任何 CA 生成此证书,但最终我们只会得到 509 证书 pfx 文件(由 godaddy 或任何 CA 颁发)。我们可以拿到中间证书,但这个 Web 服务器很简单,只允许我们指定 pfx 文件。
我们将无法分发或安装中间证书。
该应用程序是一个在Win2008及更高版本上运行的C#应用程序。
有什么方法可以解决这个问题?
-- 是否存在足够可靠的证书,使得浏览器无需中间证书就可以信任它?
- 或者 ?
答案1
您可以将信任链中的其他证书添加到使用 openssl 的 PKCS #12 文件。
例如,要包含信任链,您可以使用以下命令:
openssl pkcs12 -export -in input.pfx -out bundle.pfx -CAfile allcacerts.crt -chain
这将尝试将整个证书信任链包含在您的输出 pfx 中。您可能需要包含-passin <input password>
和-passout <output password>
以满足密码要求。您可以强制包含任何特定证书,以-certfile cacert.crt
包含该文件中的所有证书。
您可以使用相同的实用程序检查 pfx 文件以查看其内容并打印大量诊断信息。
openssl pkcs12 -in bundle.pfx -info