3

我在 StartSSL 上获得了我拥有的域的证书。所以这给了我:

  • 中间 CA 证书
  • StartCom 根 CA 证书
  • 私钥

为了接收这些,我向 StartSSL 发送了这个:

  • 我拥有的证明mydomain.com(通过电子邮件代码验证)
  • 我用我已经拥有的私钥制作的 CSR

看来我需要做的是把这个密钥和这个证书链放到我的服务器上,这样服务器上的 OpenSSL 就可以使用它们来让 Web 浏览器放心。

但是哪个私钥是哪个?我有生成 CSR 的私钥和从 CA 获得的私钥。

我也不是 100% 清楚的是这里可​​以保证什么。浏览器查看证书,它告诉浏览器它应该连接到mydomain.com.

StartCom 所知道的是,我已经向他们展示了我拥有mydomain.com并且我是唯一拥有此私钥的人。这就是传递的内容,所以现在从南斯拉夫连接的浏览器现在也有这些信息。

因此,我的 Web 服务器位于具有动态 IP 的廉价家庭连接上。我在我的域注册商处将 DNS 设置为直接mydomain.com使用myname.dynDNSProvider.comaCNAME并且我的动态 DNS 服务已myname.dynDNSProvider.com重定向到我家路由器上的动态 WAN IP。

当 IP 更改时,请求会被定向到其他人或根本没有人。一切正常,因为攻击者无法使用报告的有效证书设置服务器mydomain.com。而且我还必须信任我的 DNS 服务。一旦我更新了 IP,一切都会再次运行。

这就是它的工作原理吗?从我的域到我的实际 IP 的重定向路径是否与 SSL 身份验证无关?如果我的 DNS 服务提供商愿意,他们是否可以比外来者更有效地执行攻击?

我基本上只是想以便宜的方式建立与我的家庭服务器的安全连接,为了以便宜的方式完成它,我完全可以接受动态 DNS 将导致的任何短暂停机时间。我在这里要解决的特定问题是让浏览器不要说“无效证书!!!” 当他们看到我的自签名 SSL 证书来自我的服务器时。我很难找到好的资源来了解这些东西是如何工作的。

4

1 回答 1

3

但是哪个私钥是哪个?我有生成 CSR 的私钥和从 CA 获得的私钥。

您从 CA 获得了公钥该公钥是您的 CSR 的一部分,加上来自 CACert 的证明,这基本上意味着“我们验证了这一点”。我正在简化,但这就是它的要点。您使用您拥有的私钥以及从他们那里获得的带有公钥的证书。

至于 DNS 位,证书上写的是“我可以接受example.com”。如果 Web 浏览器正在尝试连接到example.com,并且服务器有一些有效的证书example.com并且由浏览器信任存储中的证书签名(CACert 在 Mozilla 和 Microsoft 存储中),那么您已经设置好了。除非证书中有 IP 地址,否则连接产生的 IP 地址无关紧要(这不是标准做法;CACert 颁发的证书仅将 subjectAltNames 设置为 DNS 名称)。

如果我的 DNS 服务提供商愿意,他们是否可以

由于您的问题落后了,所以有点难以回答。但是您的“DNS 提供商”(我假设您的意思是 dyndns 服务)可以做三件事:将流量发送到他们自己的服务器,将其发送到任何地方,或者在拦截后将其发送给您。让我们分别解决那里的攻击。

首先,将流量发送到他们自己的服务器。如果他们无法为您的域获得有效证书,并且您要求所有连接都使用 SSL(没有用户发出非 SSL 请求),那么这对他们没有好处。他们的伪造证书将显示为无效并且游戏结束。

其次,将流量发送到无处。拒绝服务。在这种情况下并不有趣。

第三,尝试中间人攻击。这里的问题是客户端发送的流量只有拥有你的私钥的人才能读取 - 他们没有。因此,除非他们能够为您的域获得有效的证书,并出示该证书而不是您拥有的证书,否则他们可能处于中间但仍然无法读取流量 - 所以这种攻击实际上归结为第一个攻击。你很安全。

于 2012-07-17T05:00:58.943 回答