从前我也有这种疑问,既然80端口的http能用为什么还要麻烦去申请域名证书?直到网站频繁跳转色情网站我才意识到不对劲,紧接着就出现了警告短信!
我的网站就这么赤裸裸的被劫持了,当我重新去部署ssl时才发现即使申请使用了证书,但是网站还是一样会被劫持,一时之间不知道是哪里的问题,于是我备份好网站数据,将网站迁移至本地,这场闹剧才算结束。
由于我的域名是在腾讯云购买和备案的,所以我得去腾讯云官网申请证书和下载,如果你的设备和域名都是腾讯云的你可以直接一键部署,无需这些麻烦的操作
腾讯云证书申请直达链接
点申请证书后,选择免费申请90天的(之前免费的有一年呢,现在就三个月了,到期还得回该网站续期,万恶的资本家!!!)
下载证书也提供了好几种,最常用的其实也就 NGINX and Apache2 nginx配置PHP多一道麻烦,我直接用Apache2,下载好后解压安装包可以得到下图文件
为apache服务器添加ssl模块支持
a2enmod ssl紧接着需要把这些文件移动到 certs和private 这两个文件夹,按照下面这个路径标准。
修改 /etc/apache2/sites-available/default-ssl.conf 找到VirtualHost *:443的配置,并参考如下配置(修改或增加):
SSLEngine on
SSLCertificateFile /etc/ssl/certs/你的域名.crt
SSLCertificateKeyFile /etc/ssl/private/你的域名.key
SSLCertificateChainFile /etc/ssl/certs/root_bundle.crt
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL
SSLHonorCipherOrder on
保存后,给配置文件建立一个软连接,命令如下:
a2ensite default-ssl进入查看/etc/apache2/ports.conf 文件是否已有添加Listen 443,如果默认已添加,忽略此步骤。
先命令检测配置是否正确,若不正确,请不要重启apache2!检测命令如下,如果成功,则显示下面图片
/usr/sbin/apache2ctl -t
若提示 Syntax OK 则表示配置正常(如果提示错误,请根据具体错误修改,直到提示Syntax OK),可以重启apache2,命令如下:
systemctl restart apache2若可以成功访问https,那么我们再执行最后一步,强制用户即使输入http,也跳转到https上。添加下列三行代码即可。修改 /etc/apache2/sites-available/000-default.conf 文件
<VirtualHost *:80>
...
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
...
</VirtualHost>保存后执行 a2enmod rewrite 最后再重启Apache2服务器 systemctl restart apache2 大功告成!
—— 评论区 ——