假设我想购买一个通配符 SSL,可以用于 Web 服务器,跨越多种不同的服务器和平台。
我可以为每一个服务器颁发一个 CSR,并附上它们自己的私钥-公钥对,但是是否可以将私钥分发给所有不同的服务器并使用相同的证书?这样,只需颁发 1 个 CSR,然后将其部署到混合平台上。或者,针对不同平台颁发的证书是否不同?
当前农场由以下各项组成:
Windows 2008 R2 和 IIS Linux 和 Tomcat(运行 JIRA 和 Confluence)Clavister 防火墙(我想我没有得到这个问题的答案)
答案1
真正的 CA 只会在任何时候为每个不同的“主题”(DN) 或主题/SAN 组合颁发一个有效的 X.509 证书。通配符通常是故意的供多个系统使用。一些 CA 过去会针对每台设备收取额外的“许可证”,请查看细则。
密钥和证书是相互关联的(这是不对称加密部分,我甚至不会在这里开始解释)。每个证书(理论上)只有一个匹配的私钥,因此您不能拥有多个不同的密钥和一个通用证书。
方法是:
- 你不在每个系统上单独生成 CSR
- 用于
openssl
生成密钥和 CSR,请按照所选 CA 的说明进行操作 - 提交 CSR,支付 $$$ 然后等待
- 用于根据其他平台 (DER、PEM、P12/PKCS#12) 等的要求
openssl
进行.key
转换.crt
- 确保在所有平台上始终保护你的密钥
- 在每个系统上导入密钥/证书对,它们都共享同一对,尽管可能以不同的格式导入
一个密钥、一个 CSR、一个证书 - 多次安装。
CA 总是询问平台,主要是要给您合适的文件格式(证书和包),但我怀疑也是为了解决已知问题(例如确切的证书属性和格式、DN 名称格式、X.509v3 扩展)。一般来说,您应该能够使用openssl
,告诉 CA 您使用“Apache/mod_ssl”,然后进行转换。
答案2
每个主题只需要一个证书 - 对于 Web 服务器来说,主题就是(虚拟)主机名。唯一的问题是 x509 证书有多种格式 - 但 openssl 可以在我所知道的所有格式之间进行转换(包括 DER、PEM、PKCS#12、PKCS#7)