Apache添加Https支持

第一步,申请HTTPS证书

打开:https://freessl.cn/ ,可以为网站免费创建证书,如果没有特殊要求,选择有效期长达1年的TrustAsia证书,然后一路next就到了DNS验证这一步了,按照要求填写TXT记录如下:

验证成功后就可以获取到证书了,最终将会下载获取到三个文件,后两个是有用的,重命名后待使用。
-w369

第二步,配置Apache服务器

在Apache的vhost文件中添加/修改如下片段

1
2
3
4
5
6
7
8
9
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/pmvincent.com.crt
SSLCertificateKeyFile /etc/ssl/pmvincent.com.key
ServerAdmin xxx@xxx.com
DocumentRoot "/xxx/pmvincent.com"
ServerName pmvincent.com
ServerAlias pmvincent.com www.pmvincent.com
</VirtualHost>

同时在http的配置中配置重定向:

1
2
3
4
5
6
7
8
9
<VirtualHost *:80>
ServerAdmin xxx@xxx.com
DocumentRoot "/home/www/htdocs/pmvincent.com"
ServerName pmvincent.com
ServerAlias pmvincent.com www.pmvincent.com
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>

重启后生效。

小技巧:如何防止别人恶意解析

在Apache的vhost配置中增加如下,意思是除了vhost配置的,其它一律拒绝,其中ServerName为主机的IP地址:

1
2
3
4
5
6
7
8
<VirtualHost *:80>
ServerAdmin xxx@xxx.com
ServerName 1.x.x.x
ServerAlias *
<Location />
Require all denied
</Location>
</VirtualHost>