首先,确保你的Apache编译了SSL模块,这是支持SSL证书必要的条件(如果没有,请编译,【打开phpstudy】》【其他选项菜单】》【PHP扩展】》【php-openssl】前面勾选上)。
在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。
打开 Apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉前面的“#”注释符,使得SSL模块生效(如果该模块已去掉注释,请不用操作)。
接着搜索以下内容:【Include conf/vhosts.conf】,在其下面增加一条引用内容:【Include conf/vhostssl.conf】,如下图所示
Apache 安装目录下 conf 文件夹中创建一个vhostssl.conf配置文件。可以复制httpd.conf文件另存为vhostssl.conf,按照80的配置,另起一个VirtualHost443,vhostssl.conf
Listen 443
<VirtualHost *:443>
DocumentRoot "D:\WWW\WEBMULU"
ServerName www.example.com
ServerAlias example.com
SSLEngine on
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile "D:\phpStudy\Apache\cert\public.pem"
SSLCertificateKeyFile "D:\phpStudy\Apache\cert\21564852664745.key"
SSLCertificateChainFile "D:\phpStudy\Apache\cert\chain.pem"
<Directory "D:\WWW\WEBMULU">
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
注意:其中的域名信息替换成所申请SSL证书绑定的域名,SSLCipherSuite、SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFile,结合所申请的SSL证书给的配置信息与自己所创建的cert证书目录来配置;vhostssl.conf文件名没有限制要求,可以根据自己的想要的重新命名,不过一定要跟httpd.conf 文件中引用的文件名称一样!
重启apache(有可能报错,看一下443端口是否被防火墙拦截或被占用);Apache正常重启后,在浏览器里面输入带有https的网址就能看到安全锁出来啦;最后备份好您的SSL证书!
配置完SSL证书,我们需要进行站点301重定向,将http的地址强制跳转到https地址,Apache环境下,在站点根目录添加.htaccess文件,如图所示
在.htaccess文件中添加以下内容:
RewriteEngine onRewriteBase /RewriteCond %{SERVER_PORT} !^443$RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
然后保存文件,并将文件上传到网站根目录,如图所示