ssl 实验
0. 准备环境:
vmare 15 + win 7 虚拟机 + wireshark
phpstudy 2018
1. 搭建微型网站
我的 phpstudy 在 C 盘,打开 WWW 文件夹,新建一个文件夹,比如 test,在 test 文件夹下
新建一个 html 文件,随便写点什么。
打开 C:\phpstudy\phpStudy.exe->其他选项菜单->站点域名管理->设置如下图:
新增->保存设置并生成配置文件
点击下图 vhost.conf 文件,可见到变成新的样子
保持这个页面打开不用关,后面会用到。
打开下图的 hosts 文件
(如果不能更改,建议先打开属性->安全,设置一下权限为可修改、写入)
在该 hosts 文件末尾增加一条“本机 IP www.test.com“,,本机 IP 可通过 cmd 的 ipconfig 命
令查看,顺便看一下网关 IP,后面会用到。
打开浏览器,输入地址,可以看到编写的页面
2. 生成证书
用到 apache 自带的 openssl 工具
首 先 打 开 一 个 东 西 , phpstudy.exe-> 其 他 选 项 菜 单 ->php 扩 展 及 设 置 ->php 扩 展
->php_openssl 打开
然后进入下面位置
以管理员身份运行 cmd
cd 到这个文件夹的位置
设置一下临时环境变量 OPENSSL_CONF
运行 openssl,全部做完如下
输入生成 server.csr 文件的命令,填信息。注意 PEM pass phrase 是不回显的;注意 Common
Name 要和域名一致,但是不用加 www
再输入生成 server.key 文件的命令,以及生成 server.crt 文件的命令,全部做完如下:
点击 server.crt,安装为受信任的根证书颁发机构,具体见网上操作。完成之后如下:
3. 开启 ssl
在 vhosts 文件后面加入这一段,注意保存。
最终的完整的 vhosts 文件文字如下:
DocumentRoot "C:\phpstudy\PHPTutorial\WWW"
Options -Indexes -FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
DocumentRoot "C:\phpstudy\PHPTutorial\WWW\test"
ServerName www.test.com
ServerAlias test.com
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
Listen 443
SSLStrictSNIVHostCheck off
SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL
SSLProtocol all -SSLv2 -SSLv3
ServerName www.test.com
ServerAlias test.com
DocumentRoot
"C:\phpStudy\PHPTutorial\WWW\test"
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
SSLEngine on
SSLCertificateFile "C:\phpStudy\PHPTutorial\Apache\bin\server.crt"
SSLCertificateKeyFile "C:\phpStudy\PHPTutorial\Apache\bin\server.key"
重启 phpstudy
打开 IE 浏览器,输入 https://www.test.com,注意是 https 不是 http,然后提示如下
点击“继续浏览此网站”,最终结果如下
4. 抓包分析
管理员身份运行 cmd,添加一下路由表项,输入 route add 本机 IP mask 255.255.255.255 网
关 IP。
打开 WireShark(虚拟机没有安装 WireShark 的需要安装一下,注意安装之后要安装 wincap,
然后用管理员身份打开 cmd,输入 net start npf 来开启一个服务,然后第一次打开时用管理
员身份打开 WireShark,这样 WireShark 才能用),筛选规则如下,IP 为本机 IP