SSL-服务器证书是否绑定(bind)到特定机器?

标签 ssl ssl-certificate

最近我们用 tomcat 创建了一个服务器,我们还为这个小服务器添加了 SSL 支持。对于 SSL 支持,我们需要由第三方颁发者(如 Entrust、Thawte 等)颁发的证书。

同事跟我说,证书是绑定(bind)到特定机器上的。那就是一旦我们获得了颁发的证书,那么这个证书就不能在另一台机器上使用了。

我完全怀疑这一点,因为 CSR 不包含机器的任何信息。是真的吗?

谢谢

最佳答案

证书不一定绑定(bind)到特定机器。为了能够在机器上“使用证书”,您需要两件事:证书本身及其私钥。您应该已经生成了私钥和 CSR(取决于您使用的工具)。

有些系统不允许您重新提取私钥(例如,Windows 可以选择以一种您无法再导出的方式导入私钥,但据我所知,如果您对该机器有足够的访问权限)。在您使用智能卡或硬件 token 的情况下,私钥可能会以您无法提取的方式在那里生成(在这种情况下,如有必要,将 token 移至新机器是有意义的) .

另一部分是证书及其名称。证书中的主机名(通常也可以在 CSR 中找到,尽管这最终不是必需的)应该是这台机器的主机名,正如尝试连接到它的客户端所看到的(参见RFC 2818 第 3.1 节,了解有关 HTTPS 主机名验证的详细信息)。因此,尽管证书本身在硬件方面并未绑定(bind)到特定机器,但它将绑定(bind)到此主机名(例如,它允许您更改此机器的硬件或其 IP 地址)。

关于SSL-服务器证书是否绑定(bind)到特定机器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15155300/

相关文章:

Java:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

java - Windows 与 Linux 的 http 身份验证。 javax.net.ssl.SSLPeerUnverifiedException : peer not authenticated

ssl - jboss 7,HTTPS 和奇怪的编码

c - SSL证书问题C

C# : How to get SSL handshake response before proceeding to HttpWebrequest?

java - 如何使用ssl证书创建okhttp

ssl - 如何在 IIS 上安装从 SSLForFree.com 收到的 ssl 证书

java - Web服务提供者和消费者之间的证书机制

macos - 在 macOS 中将自签名证书添加为受信任的证书无法正常工作

android - 如何解决android中的握手异常和认证异常