弄好SSL证书之后就可以开始配置HTTPS服务了。这里我直接使用的阿里云的PHP环境镜像,测试环境如下:

  • CentOS 7.0 (https://www.centos.org/)
  • Apache httpd 2.4.6 (http://httpd.apache.org)
  • OpenSSL 1.0.1 (http://www.openssl.org/source)

### 1.连接到服务器 这里我用的是Xshell,连接方法就不说了,网上很多教程。 ### 2.安装mod_ssl模块 首先检查是否已安装SSL软件
[root@Ayase ~]# rpm -qa | grep mod_ssl

如果发现什么都没显示说明没有安装,没有安装mod_ssl模块,Web服务器就无法提供SSL服务。

[root@Ayase httpd]# rpm -qa | grep mod_ssl
[root@Ayase httpd]#

可使用yum在线更新方式安装。

[root@Ayase ~]# yum install -y mod_ssl		//安装SSL软件
Dependencies Resolved

==================================================================================================================================================
 Package                           Arch                        Version                                         Repository                    Size
==================================================================================================================================================
Installing:
 mod_ssl                           x86_64                      1:2.4.6-80.el7.centos.1                         updates                      111 k
Updating for dependencies:
 httpd                             x86_64                      2.4.6-80.el7.centos.1                           updates                      2.7 M
 httpd-devel                       x86_64                      2.4.6-80.el7.centos.1                           updates                      196 k
 httpd-tools                       x86_64                      2.4.6-80.el7.centos.1                           updates                       90 k
 openssl                           x86_64                      1:1.0.2k-12.el7                                 base                         492 k
 openssl-libs                      x86_64                      1:1.0.2k-12.el7                                 base                         1.2 M

Transaction Summary
==================================================================================================================================================
Install  1 Package
Upgrade             ( 5 Dependent packages)

Total download size: 4.8 M


Installed:
  mod_ssl.x86_64 1:2.4.6-80.el7.centos.1                                                                                                        

Dependency Updated:
  httpd.x86_64 0:2.4.6-80.el7.centos.1        httpd-devel.x86_64 0:2.4.6-80.el7.centos.1        httpd-tools.x86_64 0:2.4.6-80.el7.centos.1     
  openssl.x86_64 1:1.0.2k-12.el7              openssl-libs.x86_64 1:1.0.2k-12.el7            

Complete!	//完成

安装成功后再次执行会显示版本信息:

[root@Ayase httpd]# rpm -qa | grep mod_ssl
mod_ssl-2.4.6-80.el7.centos.1.x86_64

3.下载与上传证书

从阿里云下载证书后一共是四个文件
这里写图片描述

在Apache的安装目录(/etc/httpd)下创建cert目录,并将上面四个文件上传到该目录。

[root@Ayase ~]# mkdir /etc/httpd/cert
[root@Ayase ~]# cd /etc/httpd/cert/

使用Xshell上传文件可点击工具栏的新建文件传输按钮,弹出框后点击取消会跳转到另一个标签页,此时可将四个文件直接拖到黑窗口进行上传。
这里写图片描述

4.配置SSL

首先编辑SSL配置文件,检查端口是否为443及前面是否有#号,LoadModule是指支持HTTP所需要的模块,如果没有LoadModule,可手动添加一行LoadModule ssl_module modules/mod_ssl.so

[root@Ayase ~]# vim /etc/httpd/conf.d/ssl.conf 	//编辑SSL配置文件,也可能是/etc/httpd/conf/extra/httpd-ssl.conf文件,与操作系统及安装方式有关)

LoadModule ssl_module modules/mod_ssl.so	//支持SSL模块
#
# When we also provide SSL we have to listen to the 
# the HTTPS port in addition.
#
Listen 443 https	//http ssl默认端口为443,如果有#号需删除才可以使用

修改相应的证书信息(配置文件中这些条目并不是挨着的),可以在阿里云证书下载页面复制该信息然后将原有的注释掉。

# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile /etc/httpd/cert/public.pem			//你的对应证书文件路径
# 证书私钥配置
SSLCertificateKeyFile /etc/httpd/cert/111111111111111.key	//你的对应证书文件路径(将文件名改成你自己的)
# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile /etc/httpd/cert/chain.pem		//你的对应证书文件路径

这里写图片描述
修改并退出。

5.配置防火墙

SSL服务必须在防火墙配置中开启443端口,HTTPS才可以对外连接。

[root@Ayase ~]# vim /etc/sysconfig/iptables

# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT	//SSL端口
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

防火墙配置完成后,必须重新启动防火墙服务,配置才会生效。

[root@Ayase ~]# service iptables restart
Redirecting to /bin/systemctl restart  iptables.service

6.重启apache服务

一切配置完成后,必须重新启动apache服务,Apache配置都会生效。

[root@Ayase httpd]# service httpd restart
Redirecting to /bin/systemctl restart  httpd.service

7.测试Apache SSL正常运行

在浏览器中输入【https://域名】,如果出现如下图所示的页面,表示成功配置HTTPS服务。若是显示不安全且证书显示为invalid,但是点击【继续浏览些网站(不推荐)】仍可访问,则可能是证书配置错误,检查证书是否过期或路径是否有误。
这里写图片描述