Apache下的http升级https详解
**
一、升级https带来的好处:
**
http升级成https 不仅能够提升SEO排名、防止流量劫持,而且现在浏览器,iOS、安卓等移动端系统,以及微信小程序等相关应用产品,都要求网站/应用服务器使用HTTPS加密。为网站升级HTTPS加密可以适应更广泛的安全合规性要求,在进行业务扩展、API接入等合作时能畅行无阻。
二、升级前的准备工作
1、HTTPS证书申请:
这里提供一个网站https://freessl.cn/,可以申请由Let’s Encrypt 与 TrustAsia 为我们提供免费SSL证书。
图1-1
输入你的域名,点击创建免费SSL证书。
图1-2
这里我选择文件验证,浏览器生成,然后点击创建。这里会弹出下载窗口,下载private.key文件,这个文件可以不用。
图1-3
点击图片上右下角的下载文件链接,下载fileauth.txt文件上传到你的WEB服务器(上图指定路径下),用于进行域名的拥有者的身份验证。然后点击配置完成,检测一下。
所有验证都通过后,我们将获得证书如下:
图1-4
到这里已经申请成功了,点击下载你的证书。解压下载的文件,其中包含证两个文件full_chain.pem和private.key。
2、Apache相关模块的安装:
为了使Apache支持https访问,系统需要安有apache、openssl、mod_ssl.so。
三、Apache配置HTTPS
这里我们主要关心两个配置文件,ssl.conf(或httpd_ssl.conf)和httpd.conf,ssl在目录 /etc/httpd/conf.d下面,httpd.conf 在目录/etc/httpd/conf下面。
ssl.conf文件只有在SSL模块安装完成才会有,如果没找到说明没安装成功。
我们在/etc/httpd/conf下面创建ssl文件夹,把前面下载的证书文件放置此目录下,后面需要用到。
1、httpd.conf的配置文件需要修改的地方如下:
①、LoadModule ssl_module modules/mod_ssl.so(增加或找到这一行去掉注释‘#’)
②、ServerName kormee.freenat.club (主机名设置成自己的域名)
③、在最后添加下面4条语句,开启http强制转https,如果需要http和https都支持可不加。
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/tz.php
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
2、ssl.conf的配置文件需要修改的地方如下:
①、DocumentRoot “/var/www/html” (去掉注释‘#’)
②、ServerName kormee.freenat.club (去掉注释并改成自己的域名)
③、SSLEngine on
④、SSLCertificateFile /etc/httpd/conf/ssl/full_chain.pem (full_chain.pem证书文件路径)
⑤、SSLCertificateKeyFile /etc/httpd/conf/ssl/private.key(private.key证书文件路径)
开放443端口(https默认端口)
firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没有此参数重启后失效)
执行systemctl restart httpd.service重启apache。
在浏览器地址栏输入https://kormee.freenat.club/wordpress/,然后回车
图1-5
这里我们可以看到网站已经成功升级https了。
不过网页还是提示不安全,那是因为网页中还存在http的连接,如图片连接之类的,都需要改成https形式的连接。