phpStudy环境下安装配置SSL证书,实现加密访问(Https)

一、何为SSL证书? SSL证书是什么?

百度百科是这么解释的:

SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。

SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。

简单理解就是实现数据加密传输吧。

当你的网站使用SSL证书后,浏览器地址栏的链接会显示https,使你的客户知道你们网站是安全可靠的,能增加用户对网站的信赖度。

二、何为PHPStudy? phpStudy是一个PHP调试环境的程序集成包。

该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境·该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等·总之学习PHP只需一个包。

可以简单的理解为,如果你用PHP语言写了一个服务端Web程序,需要部署到服务器上,则需要使用phpStudy这个集成环境来运行你写的PHP程序。

其中,phpStudy自带MySQL数据库,足够满足PHP网站的搭建。

其实和PHPStudy很像的建站集成软件还有xampp等。如果感兴趣可以去了解一下xampp,二者有很大的相似之处。

三、申请阿里云免费SSL证书 在申请SSL证书之前,首先你需要有一个域名。这个域名所归属的账号和申请SSL证书的账号不要求一致。即域名可以在任意账号下,只要你有域名解析控制权即可。

下面讲述如何申请阿里云免费的SSL证书。

1、登录阿里云,进入控制台,搜索SSL证书服务 如下图所示,在【产品与服务】栏目中搜索【SSL】即可,【SSL证书】在【安全(云盾)】模块下。

点击进入即可。

2、购买SLL证书 如下图,在【SSL证书管理控制台】中点击【购买证书】

3、购买证书 如下图,选择【免费型DV SSL】证书,购买即可。

该证书为免费证书,所以一个证书只能绑定一个域名(如:baidu.com和www.baidu.com为同一个域名,而baike.baidu.com则为另一个域名) 。

4、申请签发证书 购买SSL证书后,在【SSL证书控制台】即可看到刚购买的证书,状态为未签发。

点击【申请】,申请该证书绑定的域名。

填写上述表单即可。

如果该证书和域名在同一个阿里云账号下,选择【自动DNS验证】即可。 如果SSL证书和域名不在同一个阿里云账号下, 选择【手工DNS验证】。也可选择文件验证(需要服务器) 点击下一步。

笔者以不同账号为例,需要在域名下手动配置TXT记录,如下图:

在域名【云解析DNS】下添加上图这条记录即可。如下图:

然后在证书申请页面,点击【验证】,显示【验证成功】后,点击【提交审核】即可。

一般需要几分钟就会申请通过。

免费证书是不会给你打电话核实的,但是也不排除有例外。

然后,证书状态:审核中。如下图所示。

5、下载证书 审核通过后,即可下载该证书相关的文件。如下图所示:

点击需要配置到服务器的证书后面的【下载】按钮,即可下载对应的证书文件。

如上图,有Tomcat、Apache等环境。

使用phpStudy服务器环境,推荐使用Apache。 phpstudy 下载服务器类型为Apache的SSL证书文件后,文件中包含三个文件,如下图所示:

下载的压缩包文件名中包含该证书所属的域名,以及该证书适配的服务器环境。

然后将这些文件上传到服务器里,接下来需要在服务器里将这个SSL证书配置到phpStudy。

四、SSL证书配置至phpStudy环境下 1、上传证书,解压 前面我们已经下载好Apache服务器的证书,将证书上传至服务器,解压至任意目录即可,建议统一存放。

下图为笔者SSL证书存放在服务器中的路径,这个路径记住!后边要用!!!

2、开启SSL服务 在phpStudy主面板中,点击【其他选项菜单】→【PHP扩展及设置】→【PHP扩展】,将【php_openssl】参数勾选,如下图所示:

这时,打开【httpd.conf】文件,可以看到“LoadModule ssl_module modules/mod_ssl.so”这行代码前没有“#”。

如果依旧有“#”,可手动删除。

然后将【httpd.conf】这个文件滑到最底下,将下图中红框内的那行代码前的井号#删除:

然后保存这个文件,关闭即可。

到这里,就开启了SSL服务。

3、配置SSL文件 在phpStudy安装目录下,找到【httpd-ssl.conf】文件,一般目录如下图所示;

将这个文件使用记事本打开。

默认的文件中自带很多注释代码,如下图所示,都是如何配置这个SSL文件的说明。如果你是技术大牛,可以根据这些英文提示,自行配置SSL证书文件。

其实这些文件,只需要配置几个地方就可以。但是看着这么多的文字,有点乱糟糟的……

所以笔者将该文件内原有代码删除,将下面代码复制进去,然后修改几个地方就可以:

Listen 443

<VirtualHost *:443> #双引号内为index文件的路径,替换成自己的 DocumentRoot "C:\WWW\web"

#后边跟该SSL证书文件的域名
ServerName wx.domain.com

#同上
ServerAlias wx.domain.com

SSLEngine on
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

#这后边跟自己证书文件的路径,如下例子所示:
SSLCertificateFile C:\WWW\cert\wx\wx.domain.com_public.crt        #Public证书文件,替换成自己的
SSLCertificateKeyFile C:\WWW\cert\wx\wx.domain.com.key            #KEY证书文件,替换成自己的
SSLCertificateChainFile C:\WWW\cert\wx\wx.domain.com_chain.crt    #chain证书文件,替换成自己的

#下面双引号内同上 <Directory "C:\WWW\web"> Options Indexes FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted 如果该服务器有多个域名访问,可以配置多个SSL证书,只需要将:

<VirtualHost *:443> …… …… 内的代码重复复制在后边即可。

如下图,笔者就在一个服务器上配置了两个域名,并且均配置SSL证书:

将上述文件配置完毕后,重启phpStudy即可。

如果Apache无法启动,检查代码中是否有拼写错误等。

然后就可以在浏览器中测试域名https访问。

五、强制https访问 如果需要强制https访问,即使用http访问时,自动切换到https访问,也很简单。

只需要在Web项目的根目录下创建一个【.htacess】文件,如下:

然后将下面代码复制进去,保存即可:

RewriteEngine on

RewriteBase /

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 如果不知道怎么创建这个只有扩展名的文件,可以从其他地方复制一个。

这时,使用http协议访问该Web项目,则自动切换到https协议。

六、参考文献: phpStudy环境安装SSL证书教程 - phpStudy技术文章:http://phpstudy.php.cn/jishu-php-2958.html

钟长森
请先登录后发表评论
  • latest comments
  • 总共0条评论

川公网安备 51010702002018号