阿里云轻量级应用服务器CentOS系统Apache配置Https
本文最后更新于:April 7, 2019 pm
记录一下给Hexo博客配置https域名过程中踩的各种坑。
1、申请证书
SSL的证书基本可以分为申请的和自己创建的,阿里云上面有免费的可以申请,本着多一事不如少一事的原则(其实是太菜了),果断选择阿里云的SSL证书申请。
▼点击SSL证书(应用安全)
▼选择免费的那个。
▼填写一些申请的信息。
▼然后需要进行信息验证,一般都是DNS验证,如果是在阿里云购买的域名,会自动添加DNS解析验证,其他的就需要到域名管理里面手动添加了。
▼提交成功之后耐心等待一下,很快就会申请通过。
2、安装Apache和openssl
2.1 安装Apache
由于是在apache服务器上面搭建的博客,所以我的服务器已经安装好了apache,输入下列命令可以查看apache的版本信息。
1 |
|
如果没有安装apache的话,可以选择手动下载安装包安装或者是使用yum进行安装,不同的安装方式生成的文件目录会有一些不太一样,这对后面的SSL证书配置有着很大的影响。
1 |
|
接着再安装一些必要的工具和扩展
1 |
|
1 |
|
2.2 安装openssl
接着是使用yum安装openssl模块。如果有特殊需求的,可以到官网下载openssl自行编译,在这里只需要使用yum进行安装即可。
1 |
|
查看openssl版本
1 |
|
确认安装好apache和openssl之后,我们进入下一步。
3、上传证书到服务器
阿里云那边的证书申请好之后,我们下载证书到自己的电脑里面,解压可以得到类似这样子的三个文件。
图中的是默认的名字,改不改都可以,不要搞混了就行,接下来我们把它们上传到服务器中的apache的安装目录下面,给他们专门新建一个cert文件夹。
首先我们在服务器中给他新建一个目录
1 |
|
然后把本机的证书上传到服务器,我们可以直接使用scp命令上传文件,也可以使用Xshell中的Xftp来传输,还有其他的各种方式也都可以,反正传上去了就行。
我这里使用scp命令为例:
1 |
|
4、开启443端口
https默认是使用443端口进行监听,虽然阿里云默认是开启了443端口的,但是为了保险起见,我们还是确认一下。
点开阿里云的控制台,点击轻量级应用服务器。如下图所示:
5、配置ssl
5.1 启用ssl模块支持
这里就是比较坑的地方了,阿里云的帮助文档说的可能是别的方式安装的apache服务器,和我的情况不太一样。但是思路却还是正确的。
这两步,第一步的主要作用是开启apache的ssl模块支持,第二步则是Include代码ssl的配置文件使其生效。
使用yum安装的apache有一些不太一样,相对应的配置文件都在/etc/httpd/conf.modules.d
这个目录下面,我们接下来主要会用到的就是这个00-ssl.conf
和00-base.conf
文件。
打开00-ssl.conf
就能看到对应阿里云教程里面的第一步操作,启用ssl模块支持。
接下来我们在/etc/httpd/conf/httpd.conf
这个文件里面,可以找到这一行(在56行左右的位置)
1 |
|
这一行代码的意思就是Include了整个conf.modules.d
文件夹里面的所有conf
后缀的文件,这个00-ssl.conf
文件当然也不例外。
5.2 配置ssl
完成上面的两步操作之后,我们就要配置ssl的配置文件了。我们再看阿里云的文档。
1 |
|
还是一样的问题,路径不太正确,我们这里找到的文件路径是/etc/httpd/conf.d/ssl.conf
在更改配置文件之前,为了保险起见,咱们先备份一下,以备不时之需。
1 |
|
这里再给出我自己的ssl.conf
文件和大家交流一下:
1 |
|
理论上这个时候重启apache服务已经可以输入https加上我们的域名来开启https访问了,但是这个时候的https和http相互独立,默认是访问http的域名,我们需要开启http域名自动跳转到https域名。
5.3 自动跳转到https
保险起见,我们坚持一下自动跳转需要用到的rewrite模块是否开启了,还是在之前说的/etc/httpd/conf.d/00-base.conf
文件里面查找一下rewrite模块,确定已经启用。
1 |
|
接下来我们定位到这个目录
1 |
|
更改httpd.conf
文件,在最后面加入这几行代码:
1 |
|
最后我们重启apache服务,就能开启域名的https访问了。
1 |
|
最终效果如下: