Linux 中 Xampp 的 https 安全证书配置

博客地址:http://www.moonxy.com

一、前言

HTTP 协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的 HTTP 的网站是不太安全的。在一些对安全性要求较高的网站,比如银行、证券、购物等,都采用 HTTPS 服务,这样在这些网站上的交换信息,其他人抓包获取到的是加密数据,保证了交易的安全性。网页的地址以 https:// 开始,而不是常见的 http://。所以, Google 的 Chrome 浏览器从 2017 年 1 月开始,标记使用不加密的 HTTP 协议的网站为 Not Secure,不安全。给网站加上 SSL 功能,只要申请一个 SSL 证书,在服务器端配置好,就可以实现 https 访问了。安全证书分为免费的和收费的,此处我们选择免费类型的证书。

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

二、申请 https 安全证书

由于本人使用的是阿里云的 ECS 服务器,可以在阿里云申请免费的 CA 证书。申请证书之后, 系统会按照不同的服务器,提供不同的证书下载,主要支持的服务器有 Nginx、Apache、Tomcat 和 IIS 等。

进入到阿里云控制台 - 安全(云盾)- CA证书服务(数据安全),点击右上方的购买证书,进入到如下页面:

(免费)购买之后证书服务之后,在"我的订单"中找到购买的证书记录,"补全"信息,绑定自己的域名和个人信息,提交之后等待审核,当状态变为"已签发"之后,就可以点击"下载"进入如下页面,按照不同的服务器下载对应的证书。

由于我的 php 集成环境是 xampp,所以需要在 Apache 中配置安全证书,此处下载 Apache 的安全证书压缩包。

三、安装 SSL 证书并开启 443 端口

首先,编辑 /opt/lampp/etc/httpd.conf,分别查找下面两项配置,确保去掉前面的 #

LoadModule ssl_module modules/mod_ssl.so

Include etc/extra/httpd-ssl.conf

解压缩之后如下,可以看到如下文件:

然后将证书文件上传到自己的服务器中,打开 /opt/lampp/etc/extra/httpd-ssl.conf 文件,找到如下配置项,按照上传的路径做配置:

# 证书公钥配置 
SSLCertificateFile "/opt/lampp/etc/ssl.crt/public.pem"

# 证书私钥配置
SSLCertificateKeyFile "/opt/lampp/etc/ssl.key/2145229xxxxxxxx.key"

# 证书链配置
SSLCertificateChainFile "/opt/lampp/etc/chain.pem"

开启 443 端口:

<VirtualHost _default_:443>

443 端口也是网页浏览端口,但主要是用于 HTTPS 服务,是提供加密和通过安全端口传输的。另一种网页端口是 HTTP,HTTP 主要使用 80 端口。

配置好之后,重启服务器即可生效。

[root@ryan extra]# /opt/lampp/lampp reloadapache
XAMPP: Reload Apache...ok.

然后还需要在防火墙中放行 443 端口,如果是在阿里云服务器上,则需要添加安全组规则,如下:

这一步切记不要忘记,提供服务后,一定要开放服务对应的端口,这样别人才能访问该服务。

四、验证

以谷歌 Chrome 为例:

4.1 安装证书前,浏览器显示不安全:

点击"不安全",会出现如下提示:

4.2 安装证书后,浏览器有可能显示如下:

点击那个带感叹号的圆圈,提示如下:

出现这样的提示是由于网站页面上包含混合内容导致的,也就是说,网站页面上包含 http 的资源也包含 https 的资源。通常这种情况是需要在网站页面上做一些调整才能去除提示。

通过 F12 查看页面所有的额请求发现,其中有个别资源文件的请求依然是 http,所以需要调整这些不安全的连接。

4.3 调整后,浏览器显示如下:

发现浏览器已经出现了小绿锁,表示系统已经使用了 https 安全连接。

点击小绿锁,显示如下:

浏览器一切正常,表明 https 证书配置成功。

posted on 2018-03-02 00:10  沐小悠  阅读(4700)  评论(9编辑  收藏  举报