phpStudy环境下安装配置SSL证书实现加密访问(Https)
作者:拾年之璐
说明:本文从:①申请SSL证书、② 下配置SSL证书、③http协议访问自动切换至https协议,三个方面讲述SSL证书的安装配置。
一、何为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。
下载服务器类型为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 </Directory> </VirtualHost>
如果该服务器有多个域名访问,可以配置多个SSL证书,只需要将:
<VirtualHost *:443> …… …… </VirtualHost>
内的代码重复复制在后边即可。
如下图,笔者就在一个服务器上配置了两个域名,并且均配置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证书实现加密访问(Https)的文章就介绍到这了,更多相关phpStudy安装配置SSL加密访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!