windows+php+apache本地配置HTTPS

来源:互联网 发布:六爻排盘软件下载 编辑:程序博客网 时间:2024/06/05 07:23

1、搭建PHP+apache环境:

apache:http://www.apachelounge.com/download/php:http://windows.php.net/download/#php-5.5

版本选择都下载最新版的64bit

选择解压到C盘根目录上,现在开始配置,PHP是不用动的,只需要在访问域名时候Apache去找PHP解析就行了,所以仅仅配置:

Apache24\conf\httpd.conf

配置步骤:

复制代码
1.打开Apache24\conf\httpd.confServerRoot根据自己需求改为apache根目录。 DocumentRoot 也可以根据自己的喜好修改网站根目录的地方。别忘了下面的Directory节点里面的也得改。2.在一堆LoadModule下面添加# php7 supportLoadModule php7_module C:/php/php7apache2_4.dllAddType application/x-httpd-php .php .html .htm# configure the path to php.iniPHPIniDir "C:/php"3.为了让apache把index.php也设为默认页把<IfModule dir_module>    DirectoryIndex index.html</IfModule>修改为<IfModule dir_module>    DirectoryIndex index.html index.php</IfModule>4.管理员权限打开cmdC:\Apache24\bin\httpd.exe -k install5.在htdocs中新建一个index.php文件,然后在浏览器中输入127.0.0.1就可以打开了
复制代码



现在的目标就是  http://localhost/index.php   的访问变成  https://localhost/index.php

总的来说呢,https和http的区别就是一个多了个s嘛!和这个s代表的是加密,应该说apache自带一个SSL加密模块,这个小程序有exe的以及conf,现在就是围绕这两个进行操作:

1.修改两个配置文件,一个为conf/httpd.conf,另一个为conf/extra/httpd-ssl.conf

复制代码
在httpd.conf中 
a. 删掉以下语句前的’#’#LoadModule ssl_module modules
/mod_ssl.so#Include conf/extra/httpd-mpm.conf #Include conf/extra/httpd-ssl.conf b. httpd-ssl.conf中把相应选项改成如下,有’#’的删掉
SSLCertificateFile
"c:/Apache24/conf/server.crt"SSLCertificateKeyFile "c:/Apache24/conf/server.key"SSLCACertificateFile "c:/Apache24/conf/ca.crt"SSLVerifyClient requireSSLVerifyDepth 1
复制代码

2.生成各种证书 

进入Apache24\bin目录,在对应文件夹下打开cmd 
这里需要一个openssl的配置文件openssl.cnf,如果他不在 conf文件夹下,可以去网上下一个,建议把它放到bin目录下,这样子敲命令比较方便

复制代码
a. 首先要生成服务器端的私钥(key文件):set OPENSSL_CONF=openssl.cnfopenssl genrsa -des3 -out server.key 1024b. 生成server.csr ,Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.openssl req -new -key server.key -out server.csr -config openssl.cnfc. 对客户端也作同样的命令生成key及csr文件openssl genrsa -des3 -out client.key 1024openssl req -new -key client.key -out client.csr -config openssl.cnfd. CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnfe. 在bin目录下新建一个demoCA文件夹,进入它 新建newcerts文件夹,不需要进入 新建index.txt 新建serial,打开后输入01保存即可f. 用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnfopenssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnfg. 生成一个ca.pfx,打开IE浏览器-》工具-》Internet选项-》内容-》证书,按照提示导入,这里要输入刚才生成 .pfx 过程中输入的密码 openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.pfx.

h.在httpd.conf中找到下面这句话 #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 取消注释(删掉前面的"#")

i.openssl rsa -in server.key -out server.key
把生成的server.key复制到conf目录下覆盖 然后打开httpd-ssl.conf 找到SSLPassPhraseDialog builtin 在前面加上#
复制代码

重启apache即可https访问项目。

备注:

1、cmd命令界面图示例:

2、刚刚下载的PHP有两个ini文件,他们的区别是

3、上面有个在IE导入证书的我也不知道是什么来的,效果图:

访问的效果图:

在上面的F步骤之中可能出现的错误是:

解决办法:进入demoCA,然后打开index.txt.attr,把它修改成unique_subject = no就可以了 

摘自:

http://blog.csdn.net/wlmnzf/article/details/50244409http://blog.csdn.net/wlmnzf/article/details/50229407
http://www.cnblogs.com/GaZeon/p/6214915.html#ys

 现在想知道 httpd.conf 和 \extra\httpd-vhosts.conf  和 \extra\httpd-ssl.conf的关系吗?就是配置文件啊,两个个是配置HTTP的,还有一个是配置HTTPS协议的。现在关键是HTTPS是什么东西啊??哭笑哭笑~~~

I can see a bigger world.
原创粉丝点击