实现https首先需要购买ssl证书,比如通过阿里云购买了dv ssl证书。下载ssl文件解压后会得到214965547810841.key
、214965547810841.pem
、chain.pem
、public.pem
共4个文件。
文件说明:
- 证书文件
214965547810841.pem
,包含两段内容,请不要删除任何一段内容。 - 如果是证书系统创建的CSR,还包含:证书私钥文件
214965547810841.key
、证书公钥文件public.pem
、证书链文件chain.pem
。
¶一、预前配置设置
¶1.创建/etc/httpd/cert目录
cert
目录的目的是用来存放以上4个文件。
1 | cd /etc/httpd/ |
¶2.通过xftp等工具将以上4个文件存送到cert目录。
¶3.安装openssl和mod_ssl
1 | yum install openssl mod_ssl |
¶二、配置证书
完成以上安装后,会自动生成 /etc/httpd/conf.d/ssl.conf
(也可能是/etc/httpd/conf/extra/httpd-ssl.conf
,这与操作系统及安装方式有关,此种情况请参考阿里云的说明文档), 在配置文件中查找以下配置语句,配置public.pem
、214965547810841.key
、chain.pem
的路径。
1 | 添加 SSL 协议支持协议,去掉不安全的协议 |
除此之外还要添加433端口的虚拟目录,找到ssl.conf
里的 <VirtualHost _default_:443>
,然后另起一行,添加如下代码:
1 | DocumentRoot "/var/www/html/typecho/" |
¶三、重启 Apache
1 | service httpd restart |
¶四、安全组设置
需要登录阿里云,安全组添加并开放433端口。
¶五、typecho网站修复和配置
阿里云安全组设置好后就可以通过 https 方式访问您的站点了。但你会发现你的typecho博客加载不出图片或者不能访问,原因有两个原因:
1、typecho没有开启https;
解决:
进入typecho博客web根目录
1 | cd /var/www/html/typecho/ #路径根据自己情况而定 |
找到以下代码
1 | /** 定义根目录 */ |
在以上代码的上面另起2行,然后输入以下代码:
1 | /** 开启HTTPS */ |
然后保存退出
2、你原本的typecho数据库只存了http类型的域名地址,你需要将http类型的域名地址修改为https类型的域名地址。
解决:
很简单,打开终端工具登录服务器的mysql。然后输入如下:
1 | mysql> use typecho; |
1 | 注解: |
然后再刷新https链接的博客就出现图片了,当然还要登录博客管理员到后台对一些个人偏好的地址路径做相应更改。
¶六、强制转http为https(如果你需要)
其实就是强制转80端口为433端口,即让80端口重定向到443端口。
在这里我们通过修改虚拟目录来实现。
1 | vim /etc/httpd/conf.d/vhost.conf |
这里的vhost.conf配置文件你可能没有,如何配置可参考《centos7 apache2.4.6配置单ip多域名》。在vhost.conf配置文件的相应位置添加以下三行代码来实现该功能。
1 | RewriteEngine on # url重定向开启 |
以下我的的配置可供参考:
1 | <VirtualHost *:80> |
配置好后按:wq
保存并退出。
重启apache服务
1 | service httpd restart |