一. 购买ssl证书
我是在阿里云购买的,证书选型、价格以及申请流程可以参照官方文档:阿里云SSL证书
主要是以下几步:
二. 安装证书
阿里云对应不同服务器,也有安装证书的官方文档:SSL证书安装指南
我的是 Apache服务器,主要是以下几步:
-
远程连接服务器(推荐 Xshell 和 Xftp,方便好用)
-
将证书解压后(3个文件)通过 Xftp 直接拉到服务器的某个目录下,我这里在 Apache 安装目录
/etc/httpd
下新建了cert
文件夹,将这三个文件都放到该文件夹下(所以说 Xftp 真香,当然如果喜欢输入linux命令,那在linux下操作也可)
-
检查是否有
ssl.conf
文件(ssl.conf
一般在/etc/httpd/conf.d
下,其中/etc/httpd
是 Apache 的安装目录)- 若有,则直接下一步;
- 若无,先安装
mod_ssl.so
,命令行输入yum -y install mod_ssl
-
配置SSL,编辑
ssl.conf
文件vim /etc/httpd/conf.d/ssl.conf
修改其中的几句:
然后Esc -> :wq
保存退出。 -
编辑配置文件
httpd.conf
,命令行输入vim /etc/httpd/conf/httpd.conf
确保
httpd.conf
中有(有的被注释掉了,去掉“#”即可)
-
重启服务器,安装完成~
systemctl restart httpd
-
如果浏览器访问
https://xxx.xxx
有小锁标志,则安装配置成功~
三. 强制使用https
网上强制使用https的教程天花乱坠,把我看得云里雾里,反正应该有很多种配置方法,因为个人一点强迫症,最后我用了以下这种方法,直接在 httpd.conf
中配置,不需要在网站根目录下添加 .htaccess
文件。
命令行输入
vim /etc/httpd/conf/httpd.conf
找到 <Directory>
,添加以下几句
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
这个方法利用 Apache 重定向,稍微解释一下这几行正则,当访问的不是443端口(不是https)时,则会重定向到 https,返回 301 状态码。如果没有指定 “301”,则默认临时重定向,返回 302 状态码。
最后记得重启一下服务器 systemctl restart httpd
,配置就生效啦~
尝试在浏览器输入 http://xxx.xxx
,同样会跳转到 https://xxx.xxx
,有小锁标志~