Loading

网站全面升级https

细心的小伙伴有没有发现我的网站有一把小绿锁了,是的,博主昨天升级了https。血与泪的教训,搞了一天,真的是搞了一天,完全没有夸张的成分,所以我觉得不写一篇文章来纪念一下都对不起它。

因为偶然看到腾讯云有免费的SSL证书提供,所以我申请了一个,后来我想想我的服务器在阿里云,还是去申请它的SSL比较合理,于是放弃了腾讯,转向了阿里,就此开始了坑爹的道路。


1.网站环境

centos7.03
Apache httpd
wordpress

2.升级步骤

首先得去阿里云申请SSL证书,这个我相信大家都会,就不说了,按照要求一步一步来就行了。申请完之后,下载证书,我选择的是Apache,下载好解压后有4个文件,证书文件.pem,证书私钥文件.key,证书公钥文件.pem,证书链文件.pem。



(1)在Apache按照目录下建立cert文件夹

这步我就遇到困难了,因为我特么当时没找到Apache的安装目录,看哪个都不像,想要命令来找一下吧,发现肚子里没货,这就是不好好学Linux的下场。后来我抱着不如虎穴焉得虎子的想法,大胆猜测了一下。就在这个目录下

/alidata/server/httpd-2.4.10

然后在这个目录下创建cert文件夹,把下载好解压出来的文件全部复制进去。



(2)编辑httpd.conf文件

既然确定了Apache的安装目录,事情好像就变得简单了。

/alidata/server/httpd-2.4.10/conf

该目录下就能找到httpd.conf文件,打开后找到下面的内容把注释去掉

#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf



(3)编辑httpd-ssl.conf文件

/alidata/server/httpd-2.4.10/conf/extra

在上述目录中就能找到httpd-ssl.conf文件,打开之后,进行下面的配置

# 添加 SSL 协议支持协议,去掉不安全的协议(注意这条语句该文件中本来没有,自己添加进去,下面的语句文件中本来都是有的)
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile cert/public.pem
# 证书私钥配置
SSLCertificateKeyFile cert/1527849069790.key
# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile cert/chain.pem



配完这些之后,重启Apache

service httpd restart

干完这些之后,你输入https://你的域名,打开发现现实It Works!这说明配置应该没有问题了。不过你输入http://你的域名,发现还是可以。我们还得配置。



(4)再次编辑httpd-ssl.conf文件

<VirtualHost _default_:443>
# General setup for the virtual host
DocumentRoot "/alidata/www/phpwind"  #这里改成你的网站根目录
ServerName www.codeliu.com    #这里改成你的域名
<Directory "/alidata/www/phpwind">  #这里改成你的网站根目录
 Options Indexes FollowSymLinks
 AllowOverride All
 Order allow,deny
 Allow from all
</Directory>
</VirtualHost>

我只列出了要改的地方,其实里面还包括一大堆文件。



(5)配置.htaccess使http跳转到https

.htaccess文件在网站根目录下就有,如果你看不到,说明你没有设置隐藏文件可见,设置一下就好,如果的确没有,自己新建一个就行。建好后,编辑如下

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTPS} !on [NC]
RewriteRule (.*) https://www.codemonster.cn%{REQUEST_URI} [R=301,NC,L]
</IfModule>
# END WordPress



所有以上编辑,都记得要重新上传到服务器!

做到这里,你可以试试打开你的网站,看看是什么情况,哈哈,有问题可以留言找我。



(6)修改wordpress网站中的所有http路径

看看你现在还能进后台不?如果能那真是太好了,如果不能,自己google各种找答案吧。进去后台后,我们直接下载一个插件吧,不然太多链接了,该插件叫Really Simple SSL。下载好后,如果它能检测到你的网站启用了SSL证书,那没有大问题了,设置一下应该就可以,如果没有,那还得你自己去解决。



(7)查看自己有没有小绿锁

如果你打开某个网页,发现有点黄黄的东西,那你网页中肯定还有什么东西使用了http连接,打开控制台,看看那个报错,就改哪个。我之前用了百度的API地图,http连接,一直报错,去掉之后,就全部是小绿锁了。



到这里就完了,祝大家好运,不要像我一样运气这么差。

个人博客https://www.codeliu.com,欢迎各位志同道合的朋友!

posted @ 2018-05-11 12:24  CodeTiger  阅读(47)  评论(0编辑  收藏  举报