1、搭建PHP+apache环境:php
apache:http://www.apachelounge.com/download/ php:http://windows.php.net/download/#php-5.5
版本选择都下载最新版的64bithtml
apache官网获取下载地址路径:git
apache -> htttp server -> download -> windows -> Apache Loungeapache
选择解压到C盘根目录上,如今开始配置,PHP是不用动的,只须要在访问域名时候Apache去找PHP解析就好了,因此仅仅配置:windows
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
也设为默认页把 <IfModule dir_module> DirectoryIndex index.html </IfModule> 修改成 <IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
4.管理员权限打开cmd,这句的做用是将apache注册为win的服务
C:\Apache24\bin\httpd.exe -k install
5.在htdocs中新建一个index.php文件,而后在浏览器中输入127.0.0.1能够打开了证实安装完毕
2、搭建本地HTTPS协议服务器:服务器
1.修改两个配置文件,一个为conf/httpd.conf,另外一个为conf/extra/httpd-ssl.confphp7
在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.生成各类证书 app
进入Apache24\bin目录,在对应文件夹下打开cmd
这里须要一个openssl的配置文件openssl.cnf,若是他不在 conf文件夹下,能够去网上下一个,建议把它放到bin目录下,这样子敲命令比较方便
a. 首先要生成服务器端的私钥(key文件):
set OPENSSL_CONF=openssl.cnf
openssl genrsa -des3 -out server.key 1024
b. 生成server.csr ,Certificate Signing Request(CSR),生成的csr文件交给CA签名后造成服务端本身的证书.屏幕上将有提示,依照其指示一步一步输入要求的我的信息便可.
openssl req -new -key server.key -out server.csr -config openssl.cnf
c. 对客户端也做一样的命令生成key及csr文件
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr -config openssl.cnf
d. CSR文件必须有CA的签名才可造成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不本身作CA呢.
openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
e. 在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.cnf
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
g. 生成一个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访问项目。
备注:
一、cmd命令界面图示例:
二、刚刚下载的PHP有两个ini文件,他们的区别是
三、上面有个在IE导入证书的我也不知道是什么来的,效果图:
访问的效果图:
在上面的F步骤之中可能出现的错误是:
解决办法:进入demoCA,而后打开index.txt.attr,把它修改为unique_subject = no就能够了
摘自:
http://blog.csdn.net/wlmnzf/article/details/50244409 http://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是什么东西啊??哭笑哭笑~~~
HTTPS密文传输与公钥私钥、CA证书之间的关系。
他是如何实现密文传输的,如何实现任何人劫持客户端与服务端的通讯也能保证,客户端的数据(好比用户名密码不被篡改的)。
文章推荐:
数字证书与CA的扫盲介绍:
https://kb.cnblogs.com/page/194742/
也许,这样理解HTTPS比较容易:
https://kb.cnblogs.com/page/563885/
HTTPS为何安全 &分析 HTTPS 链接创建全过程:
http://wetest.qq.com/lab/view/110.html
数字证书的基础知识:
http://www.enkichen.com/2016/02/26/digital-certificate-based/