在此文章的开头,感谢我在西京的好朋友 —— 梁桂锋同学给予的指点。此文章是我们通话三小时交流后的收获。
至于为什么要配置ssl证书,是因为ssl证书能使http协议加密,另外作为支付开发和小程序开发,是必须使用https协议的, 谷歌 Chrome 于2018年七月份将所有的 HTTP 网站标记为“不安全” ,优点有点多,在此就不一一做介绍了。
以下正式进入正题
一、申请域名开启https肯定得先申请一个域名,在此就不介绍域名是如何申请如何备案的了。
二、申请证书打开阿里云控制台,找到安全(云盾)-->ssl证书(应用安全),就可以看到证书购买界面,这里我们购买免费版,然后点击下一步进行填写信息,审核过程就10分钟左右。下面可以看看我已经申请的证书示例

点击下载,弹出如下图所示的框框,这里我们选择Apache,因为我的服务器是Lamp
环境的

我们把他下载下来,放到桌面上解压备用! 解压完后可以看到几个文件,如下图所示

文件说明:
证书公钥配置文件
2087971_www.xhyonline.com_public.crt
证书私钥配置文件
2087971_www.xhyonline.com.key
证书链配置文件
2087971_www.xhyonline.com_chain.crt
三、 正式安装
我们进入到Apache的安装目录,因为我Apache的安装目录在/etc/httpd下,因此进行如下操作
命令:cd /etc/httpd
我们在Apache的安装目录下新建一个cert目录,用来存放证书
命令:mkdir cert
我们将之前下载下来的那三个证书文件,通过ftp等形式发送至我们创建好的cert目录下,并且给目录以及里面的文件755权限
命令:chmod 755 /etc/httpd/cert -R
此时的情况如下图所示

接下来我们打开Apache安装目录下的conf文件夹,这里是放置Apache配置文件的目录,找到httpd.conf文件,用vim编辑器将其打开,找到如下内容,并将前面的#号去掉。
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf (注:该文件也可能是ssl.conf,不一定是httpd-ssl.conf,与操作系统和安装环境时有关)
如果在这里找不到这两句语句的话请检查一下是否安装了ssl插件,一个是openssl,还有一个是mod_ss,这里这个是重点,因为很多人都是没有找到这这两句代码,而配置失败的。如果不知道如何检查的同学请听我这里细细道来。
①如何检查是否装了openssl
最简单的法子,就是写个phpinfo(),查看下是否有openssl这个插件,如下图我是装了,所以phpinfo这个方法可以看到有这个扩展

②如何检查是否安装了mod_ssl
请用如下命令检查:
命令:rpm -qa|grep mod_ssl
如果有则跳过安装这里,如果发现没有安装的同学,请使用一下命令安装
命令: yum install -y mod_ssl
然后再通过搜索扩展安装的路径,并且查看文件
命令:find / -name 'conf.modules.d'
命令:ll
结果如下所示,能看到有个00-ssl-conf这个文件,说明该插件已经安装成功了,接下来只需要将该插件引入httpd.conf这个apache配置文件中即可

引入modules插件
LoadModule ssl_module /etc/httpd/conf.modules.d/00-ssl.conf
引入ssl.conf文件
Include /etc/httpd/conf.d/ssl.conf

引入完这个ssl.conf文件后,我们当然还要对其进行配置
命令: /etc/httpd/conf.d/ssl.conf (注: 也可能是conf.d/ssl.conf,与操作系统及安装方式有关, 在配置文件中查找以下配置语句: )
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile /etc/httpd/cert/2087971_www.xhyonline.com_public.crt
# 证书私钥配置
SSLCertificateKeyFile /etc/httpd/cert/2087971_www.xhyonline.com.key
# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile /etc/httpd/cert/2087971_www.xhyonline.com_chain.crt
此处我都写成了绝对路径,具体意思就是上文中谈到的创建的cert文件夹中文件的绝对路径
配置结果如下图所示

安装到了这一步,就安装完成了,我们重启一下Apache就可以使用https访问网站了!重启apache
命令: service httpd restart
以下是安装过程中遇到问题的解决方案
例如:证书安装完成后,发现apache无法重启,并且查看状态中报错显示是443端口被占用无法使用,如下图所示报错

解决方案:请检查apache配置文件httpd.conf文件中是否在监听443端口,或者apache虚拟主机中的443端口是否有在使用
如果还是不能重启apache服务,请检查apache配置文件httpd.conf文件中是否有这两句话
第一句:Include conf.modules.d/*.conf
第二句:IncludeOptional conf.d/*.conf
如果有这两句话说明是插件引入发生了冲突,只需要把开头引入ssl.conf的和mod_ssl的语句注释即可,也就是将下面两句话注释

原因是上两句中的*.conf已经将配置文件全部引入了,我们就不需要再进行手动引入modules插件和ssl.conf文件了,如果我们继续手动引入,就会产生重复引入的错误,导致Apache无法重启。
此时Apache就可以重新启动了
命令: service httpd restart
文章评论(0)