1.首先获取证书,https://www.pianyissl.com/ 免费三个月的
或者
自己生成私钥、证书,然后应用到apache中。
讲解了如何在windows PHPStudy Apache 配置支持HTTPS
http://www.cnblogs.com/best-jobs/p/3298258.html
简单明了地教你怎么生成证书,并教你在apache上使用它(生成证书分windows和linux,而使用不分)
教你怎么自己生成证书,并在windows上的apache使用它
以上3篇文章方法很类似,而且第一篇文章更详细,把可能出错的原因也说了。
这篇教你怎么生成证书,随便看一看。
总体来说,流程就是:
先获得私钥+证书两个文件(可以自己生成、可以从CA购买),放到apache的某个目录;
再配置httpd.conf和httpd-ssl.conf两个文件,让apache知道你要开启SSL验证,并指明私钥和证书的位置;
重启apache即可。
2.在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中,
打开 Apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉前面的“#”注释符,使得SSL模块生效(如果该模块已去掉注释,请不用操作)。
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-vhosts.conf
3.接着搜索以下内容:【Include conf/vhosts.conf】,在其下面增加一条引用内容:【Include conf/vhostssl.conf】,(我修改的 conf/extra/httpd-vhosts.conf)
4.Apache 安装目录下 conf 文件夹中创建一个vhostssl.conf配置文件。可以复制httpd.conf文件另存为vhostssl.conf,按照80的配置,另起一个VirtualHost443,vhostssl.conf文件中的所有内容如下所示:
Listen 443 <VirtualHost *:443> DocumentRoot "D:wwwaaa" ServerName ceshi.aaa.com SSLEngine on SSLProtocol TLSv1 TLSv1.1 TLSv1.2 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 SSLCertificateFile "D:phpStudyApachecertserver.crt" SSLCertificateKeyFile "D:phpStudyApachecertserver.key" SSLCertificateChainFile "D:phpStudyApachecertca.crt" </VirtualHost> <VirtualHost *:80> DocumentRoot "D:wwwbb" ServerName ceshi.bbb.com </VirtualHost>
5.重启apache
6.配置完SSL证书,我们需要进行站点301重定向,将http的地址强制跳转到https地址,Apache环境下,在站点根目录添加.htaccess文件
7.在.htaccess文件中添加以下内容:
RewriteEngine on RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]