windows+PHP语言+apache本地配置HTTPS
小标 2018-07-26 来源 : 阅读 1756 评论 0

摘要:本文主要向大家介绍了windows+PHP语言+apache本地配置HTTPS,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了windows+PHP语言+apache本地配置HTTPS,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

一、搭建PHP+apache环境:

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

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

 

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

Apache24\conf\httpd.conf

配置步骤:

1.打开Apache24\conf\httpd.conf

ServerRoot根据自己需求改为apache根目录。

DocumentRoot 也可以根据自己的喜好修改网站根目录的地方。别忘了下面的Directory节点里面的也得改。

2.在一堆LoadModule下面添加

# php7 support

LoadModule php7_module C:/php/php7apache2_4.dll

AddType application/x-httpd-php .php .html .htm

# configure the path to php.ini

PHPIniDir "C:/php"

## 上面这句话的意思是以模块的方式加载PHP就是将PHP作为apache的模块

3.为了让apache识别index.php

 

也设为默认页把    DirectoryIndex index.html修改为    DirectoryIndex index.html index.php

 

4.管理员权限打开cmd,这句的作用是将apache注册为win的服务

C:\Apache24\bin\httpd.exe -k install

5.在htdocs中新建一个index.php文件,然后在浏览器中输入127.0.0.1可以打开了证明安装完毕

二、搭建本地HTTPS协议服务器:

 

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 require

SSLVerifyDepth  1

 

2.生成各种证书 

进入Apache24\bin目录,在对应文件夹下打开cmd 

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

 

a. 首先要生成服务器端的私钥(key文件):setOPENSSL_CONF=openssl.cnf

openssl genrsa -des3 -outserver.key1024b. 生成server.csr ,Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.

openssl req -new-key server.key -outserver.csr -config openssl.cnf

c. 对客户端也作同样的命令生成key及csr文件

openssl genrsa -des3 -outclient.key1024openssl req -new-key client.key -outclient.csr -config openssl.cnf

d. CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.

openssl req -new-x509 -keyout ca.key -outca.crt -config openssl.cnf

e. 在bin目录下新建一个demoCA文件夹,进入它

新建newcerts文件夹,不需要进入

新建index.txt

新建serial,打开后输入01保存即可

f. 用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:

openssl ca -inserver.csr -outserver.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

openssl ca -inclient.csr -outclient.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

g. 生成一个ca.pfx,打开IE浏览器-》工具-》Internet选项-》内容-》证书,按照提示导入,这里要输入刚才生成 .pfx 过程中输入的密码

openssl pkcs12 -export -inca.crt -inkey ca.key -outca.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就可以了

 

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

HTTPS密文传输与公钥私钥、CA证书之间的关系。

他是如何实现密文传输的,如何实现任何人劫持客户端与服务端的通信也能保证,客户端的数据(比如用户名密码不被篡改的)。

以上就介绍了PHP的相关知识,希望对PHP有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved