我想在我自己的一些服务器之间运行一些加密连接。可以使用Curl(或其他一些机制)在没有SSL证书验证的情况下使用HTTPS进行连接。我正在使用PHP,但这个语言可能并不重要。
我假设在没有SSL证书的情况下使用HTTPS比在普通HTTP上使用完全相同的连接更安全,因为至少它是加密的,恶意者必须做出更大的努力来拦截解密信息。 / p>
据我所知,SSL证书只是说“这个受信任的第三方说你连接的服务器是拥有它的人所拥有的”。如果我使用自己的域名或IP地址连接,我知道我是所有者。如果我是连接两端的所有者,SSL证书还能提供什么附加价值?
答案 0 :(得分:8)
不验证您连接的服务器的身份会使连接对潜在的MITM攻击开放。 SSL / TLS可以在没有证书的情况下使用(anonymous cipher suites),但它们不安全(默认情况下禁用);正如TLS RFC所说:“请注意,此模式容易受到中间人攻击,因此不推荐使用。” 此外,HTTPS specification本身也希望有一个X.509证书。
检查远程方的身份是保护系统安全的必要元素。与远程方秘密交换数据并不是非常有用,因为远程方可能不是他们声称的人(即使保密也是如此)。
话虽如此,您不必通过商业CA.您可以使用自签名证书,您必须将其作为可信证书单独导入每个客户端,或者创建您自己的机构CA.有一些工具可以做到这一点,包括OpenSSL的CA.pl
(参见手册页),TinyCA或OpenCA等。某些操作系统还提供自己的小型CA功能。
如果我使用自己的域名或IP地址连接,我知道我就是 所有者。如果我是SSL证书提供了什么附加值 连接两端的所有者?
证书确保您确实已连接到您的计算机并且未截获流量。这就是为什么你需要检查它是你认可的证书。
答案 1 :(得分:-2)
SSL证书更适合客户或使用您网站的用户。在任何一种情况下,数据都通过相同的连接传输 - 这只是第三方是否证明您是安全的问题。
在我上一份工作中,我们通过https / ftps在上一份工作中完成了所有内部数据传输,但直到最近才获得SSL证书。由于数据传输是内部的,因此没有任何区别。