今天一个客户需要安装SSL证书,真是把我头都搞大了,下面记录一下这个过程吧。
开始之前,为了避免意外请先备份(复制)好配置文件
(1)开启apache的编译ssl模块,如图打开phpstudy—其它选项设置—PHP扩张及设置—php扩展—php-openssl前面打勾
(2)打开修改httpd.conf配置文件,打开找到#LoadModule ssl_module modules/mod_ssl.so,去掉前面的注释符#(保证前面没有#号),使得ssl模块生效。
增加一条引用语句 Include conf/vhosts_ssl.conf,蓝色的是我们新加的!
(3)依次打开phpstudy安装文件,打开Apache打开conf文件,在conf文件夹 中创建一个名为“vhsts_ssl.conf”的配置文件,然后编辑文件,增加如下内容
使用说明版(仅做说明,需修改后才能用):
Listen 443
<VirtualHost *:443>
DocumentRoot "D:\phpStudy\WWW\web"
ServerName www.ka11.me
ServerAlias ka11.me
SSLEngine on
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile "D:\phpStudy\Apache\conf\ssl\cert\ka11_me.crt"
SSLCertificateKeyFile "D:\phpStudy\Apache\conf\ssl\cert\ka11_me.key"
SSLCertificateChainFile "D:\phpStudy\Apache\conf\ssl\cert\ka11_me_bundle.crt"
<Directory "D:\phpStudy\WWW\web">
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
其中
SSLCertificateFile 是指证书公钥
SSLCertificateKeyFile 是指证书私钥
SSLCertificateChainFile
上面3个就是分别对应ssl证书放置的位置
将上述文件配置完毕后,重启phpStudy即可。
如果Apache无法启动,检查代码中是否有拼写错误等。
然后就可以在浏览器中测试域名https访问。
(4)强制https访问:如果需要强制https访问,即使用http访问时,自动切换到https访问,也很简单。
只需要在Web项目的根目录下创建一个【.htacess】文件,如下:
然后将下面代码复制进去,保存即可:
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
如果不知道怎么创建这个只有扩展名的文件,可以从其他地方复制一个。
这时,使用http协议访问该Web项目,则自动切换到https协议。