https站点是否必须使用举世闻名的CA证书?

时间:2018-07-21 18:34:05

标签: https openssl certificate tls1.2 keytool

我希望我的网站使用HTTPS协议来确保安全。在制作自己的CA证书时,我设法将自己签名的密钥设置为trustedCertEntry,并使用了其他CN来签名自己的私有证书。
它可以使用openssl顺利进行测试,例如:

openssl s_client -connect www.mydomain.com:80 -tls1 -state

因此,浏览器不会看到certificate self-signed错误,因为它看到了不同的CA。

但是出现SEC_ERROR_UNKNOWN_ISSUER错误。在我看来,还是合乎逻辑的,因为没人知道我是CA。如果用户为我添加了例外,它应该可以工作。 我认为这个技巧是可以接受的,并且就像许多符合https的网站正在运行一样,因为您可能访问了未知网站,并且希望加密来自第三方观察者的通信,但请信任该页面。 在尝试对此做出明确回应之后,除了编码我将找到资源之外,我的问题是:

如果我要拥有一个站点,用户不必在第一次访问时为其添加例外,我是否必须从“世界知名” CA获得证书?还是我缺少使用自己的CA证书自签名证书的解决方案?

1 个答案:

答案 0 :(得分:1)

从技术上讲,答案是:是的,您将必须通过以固有受信任的根CA结尾的中间CA链从用户浏览器信任的CA获得证书。该问题的公认答案解释了其工作原理:SSL Certificate framework 101: How does the browser actually verify the validity of a given server certificate?

话虽如此,如果您的“唯一”考虑是提供加密的连接,则您可以利用Let's Encrypt CA来为此目的提供免费证书。这些证书仅为domain-validated,与Extended Validation Certificate相比,它提供的身份保证要弱得多。

根据所使用的浏览器,DV和EV证书之间的用户体验差异将很小。对于Safari,用户会在地址栏中看到安全性较低的DV支持站点的灰色挂锁,如下所示:

Grey padlock

和提供更高身份保证的绿色挂锁,例如:

enter image description here

前者对您(或您的客户)是否足够好取决于您的情况。

如果您想了解“固有信任”对网络浏览器的实际含义,请参阅此博客文章:Who your browser trusts, and how to control it.