Enable Client Authentication on Apache
之前的文章提到过重新开始在更新这边的原因是为了研究怎么玩client certificate。玩Client Authentication嘛肯定是需要SSL证书的,所以我又研究了一下怎么弄一个自己的ACME客户端获取LetsEncrypt的证书。最近客户端写好了才想起来要填自己挖下的坑。
什么是Client Authentication
网上介绍Client Authentication的文章很多,为了避免复制黏贴我简单说说我的理解。
网络安全是现在最重要的议题,作为普通用户,我们可以通过服务器的SSL来辨别服务器的所属公司并用证书来加密传输给服务器的信息,那么作为服务器来说,是否也有办法可以验证客户的信息呢?答案就是Client Authentication。使用Client Authentication可以让服务器识别用户信息,并且可以限定哪些区域只有持特定证书的用户才能打开。我认为仅仅使用用户名和密码在安全性上的强度已经不够,如果有使用2FA的话还可以不过之前也有报道说2FA不太够安全。用Client Authentication是杜绝没有权限的人访问网站并且可以快速识别用户的好方法。
从哪儿获取Client Certificate
现在大多数CA(Certificate Authority)都提供Client证书。按照客户需要包含在证书上信息的多少价格不一样。对于普通用户来说,要么自己搭建一个CA(需要手动把证书的根放到服务器上)或者可以通过Actalis来获取最基础的免费证书。(只验证邮箱,证书上也只有邮箱这个信息)
为了演示Client certificate如何使用,我从Actalis申请了一张Client certificate。