本文章同时发布于:
MediumiT邦帮忙大家好,我们都知道HTTPS如果没有那个叫做SSL的「S」会很危险(嗯?你不知道?那可以到我的这篇文章了解一下XD),所以我们都会希望帮网站装上SSL凭证,于是我们Google了一下各大凭证CA厂商,相信大家都会马上有以下疑问:
有些凭证是免费的,免费会不会比较危险?是不是便宜没好货呢?有些凭证CA厂商要附上公司组织证明,等等...我只是想架个人网站而已呀。本篇文章就透过由Mozilla, Cisco, Facebook, Google等等大厂赞助的免费SSL - Let's Encrypt
来介绍凭证。
这几篇会介绍
凭证原理Let's Encrypt
申请流程、设置、自动更新凭证在AWS EC2上的Load Balancer自动更新设置免费的凭证安全吗?
先说结论:
以加解密来说:免费与付费的凭证技术都一样安全
以证明层级来说:免费与付费的凭证能证明的事项不同
以申请的流程来说:免费与付费的凭证因为申请的难易度不同,造成安全性不同
关于加解密
不论免费或付费,每个CA厂商的SSL加解密的概念都是一样的,就是「CA厂商用他的私钥帮你Server的公钥签证」,更详细的流程可以看我这篇文章,而CA厂商保护他们的私钥的方法也大同小异,不外乎就是「将私钥离线储存」。
而在浏览器上,每间CA厂商都是有跟浏览器合作的,这样才能让浏览器里面有个大CA厂商的凭证,而要有这个资格与浏览其合作,都要够安全,意思就是说,每个CA厂商的安全性都是差不多的。
那你可能会问:「既然大家都一样安全,那付费的凭证到底在付什么?」,那就要讲到证明层级的部分了
关于证明层级
所谓的凭证,就是由一个CA厂商来「证明」这个「公钥拥有者的资讯」,CA厂商会在签证的时候将拥有者的资讯签上,而这些资讯由简单到複杂总共分为三个层级:
DV (Domain validated) - 网域层级验证:这个凭证验证过后你可以确保这个公钥是从此URL送出来的。这类凭证由于只能证明URL的正确性,所以在凭证主题栏只会显示URL。


所以在申请SSL凭证时,其实可以考虑自己的需求,如果只是自己架站,那其实只需要DV,毕竟你也没有公司,唯一要证明的就是此URL正常即可。
而如果是企业,就可以选择OV,他可以证明企业是否拥有此公钥,如果想要让这个公钥的威望更高,就可以再选择EV。
关于凭证申请
DV、OV、EV的申请方式都有所不同,申请核心的判断依据就是「申请者可以证明什么」,所以为了要证明不同资讯,他们的验证方法就会如下:
DV:你需要证明此URL是你所拥有的。以Let's Encrypt
来说,他会要求你在Server上产生:随机数(nonce): 一串随机数,Server必须用自己的私钥来签此随机数,并且发送至Let's Encrypt
来解章,如果成功即代表「Server拥有此公私钥对」。指定文件:一串拥有乱码的文件,会放置在此Server的path之中,例如说此文件如果叫abcd,里头的乱码为1234,而你的URL是http://example.com
,那就会变成Let's Encrypt
在浏览http://example.com/abcd
时会回应1234,用以证明此「Server拥有此URL」。更详细的说明在Let's Encrypt
的官网文件
所以在安全性的部分,DV的凭证你只要「拥有此URL」就可以申请到,意思是说他的安全性就在于你怎么保护的你URL,如果骇客可以骇入你URL管理的系统,例如:「骇客骇入管理你URL的Godaddy,那他就可以伪造凭证,因为此时他拥有了此URL」。
而OV就还必须取得公司的申报资料,并且透过电话与CA厂商验证才能获得凭证,这难度就更高了。而EV就更不用说,除了电话还要接受五大会计事务所的查水表呢。
有了凭证整体的概念后,接下来会介绍如何透过certbot来自动更新Let's Encrypt
的凭证。
谢谢你的阅读,也欢迎分享讨论~