How To Install SSL on Apache2 Server
说起来有点惭愧,距离上一次更新这边blog的文章已经有半年了。期间还差点丢失了所有的配置和文章文件…… 这半年我也没闲着主站那边没少更新吃喝玩乐的文章…… Anyway,公司前一阵子需要我使用client certificate来做登陆网站的验证。虽然Traefik也支持Client Authentication,但是我对于它的同一个服务器上不同的sub domain只能用同一个Client authentication的配置有点不满。(至少旧版是这样,我没有研究新版)因此决定回归到Apache看看怎么弄,顺便把Apache2服务器的SSL的配置方法和CertBot的使用方法也写一下好了。
之前我有写过一篇如何在XAMPP的环境下的Apache来安装SSL,今天这篇我们直接实战在服务器端配置。
本文的前提是你已经知道如何ssh到服务器并且已经安装了Apache2。
创建Apache2的virtual host跟Nginx的server block差不多,都是去到sites-available文件夹
获取SSL证书
如果需要免费的SSL证书可以参考How do we apply SSL certificates for free
本文会先获取一张通配符的证书***.sslfor.fun**证书获取成功之后把文件放到/etc/ssl/sslfor.fun
这个文件夹下
Enable SSL Module
1 | sudo a2enmod ssl |
创建virtual host 文件
Virtual Host就是告诉Apache如果某个request来到你的server了,如何把这个request direct到相对应的文件夹。这里我用sslfor.fun和www.sslfor.fun 为例,分别把sslfor.fun和www.sslfor.fun 引入到不同的文件夹
1 | cd /etc/apache2/sites-available/ |
sslforfun.conf的内容
1 | <VirtualHost *:80> |
wwwsslforfun.conf的内容
1 | <VirtualHost *:80> |
连接Virtual Host
1 | sudo ln -s /etc/apache2/sites-available/sslforfun.conf /etc/apache2/sites-enabled/ |
重启服务器就可以了
1 | sudo systemctl restart apache2 |