一、HTTPS的summery,综述,它的基本原理,扫肓。

http://www.codeceo.com/article/https-knowledge.html

读过后,就明白https怎么加密的,为什么会保证网络传输的私密性。

二、自己生成私钥、证书,然后应用到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即可。
 
三、我没有自己生成证书,因为phpstudy环境里已经带有证书和私钥。
而且自己生成的证书,会被浏览器报警。不能真正用,只能用来加密,自己玩玩可以。
而且买个证书也不贵,300多一年或者免费。商用必买。
 
所以,下面只说有了证书(.crt文件)和私钥(.key文件)以后,我们怎么配到apache里使用。
 
 
四、对apache的配置
1、假设server.crt和server.key两个文件,已经放到E:\phpStudy\Apache\conf\ssl 下(放到哪里都可以,因为这个位置要写到httpd-ssl.conf中。)
 
2、修改E:\phpStudy\Apache\conf\extra\httpd-ssl.conf文件,下面只列出要修改的内容
DocumentRoot "D:\allprojects\ttcms\waxs"(这里一定要写绝对路径,比如你写成DocumentRoot "/Apache24/htdocs",它会解释为E:/Apache24/htdocs)
ServerName www.waxstest.com  //这里配啥,不重要,因为不管你配啥,任何域名都会起作用。好像没有起到绑定域名的作用。
ErrorLog "E:\phpStudy\Apache\logs\error.log"
TransferLog "E:\phpStudy\Apache\logs\access.log"
SSLCertificateFile "E:\phpStudy\Apache\conf\ssl\server.crt"  //这里就是实际证书的位置
SSLCertificateKeyFile "E:\phpStudy\Apache\conf\ssl\server.key"  //这时就是实际私钥的位置。
CustomLog "E:\phpStudy\Apache\logs\ssl_request.log" \
 
3、修改E:\phpStudy\Apache\conf\httpd.conf,打开两行:
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
确保这两个文件存在 
 
4、重启apache。如果用phpstudy这种集成环境重启不成功,只能到dos命令行,运行E:\phpStudy\Apache\bin>httpd
看报错,一步一步解决。
比如

就是从这里看出要写绝对路径的。

最终重启apache成功。

5、浏览器访问用https即可

 

6、最后说两句

最难的是对httpd-ssl.conf的配置,

其中这两行

DocumentRoot "D:\allprojects\ttcms\waxs"
ServerName www.waxstest.com 
我以为跟配置虚拟机vhosts.conf差不多,在vhosts.conf中比如

<VirtualHost *:80>
DocumentRoot "D:\allprojects\ttcms\qinke"
ServerName www.qinketest.com
ServerAlias
<Directory "D:\allprojects\ttcms\qinke">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>

其中ServerName的改变,可以绑定特定的域名指向特定的目录。

而在httpd-ssl.conf中,ServerName似乎不起作用,

但DocumentRoot 跟vhosts.conf一样起作用。有待研究。

而且https不会影响已经存在的http站点。(也就是https的DocumentRoot 和http的某个DocumentRoot 一样,那么https和http都可以访问)

 

最新文章

  1. ABAP 合并单元格自建函数
  2. asp.net中的窗口弹出实现,包括分支窗口 . ASP.NET返回上一页面实现方法总结 .
  3. 关闭CENTOS不必要的默认服务
  4. Visual Studio工具栏中无法选择调试设备
  5. JS Map 和 List 的简单实现代码
  6. Ajax 传统的异步登陆
  7. linux “命令行自动补全”功能用命令
  8. HTML--鼠标事件
  9. js Range
  10. PHP基础示例:用PHP+Mysql编写简易新闻管理系统
  11. win7 原版下载&amp;激活
  12. 谈谈关于PHP的代码安全相关的一些致命知识
  13. 项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操作
  14. GroupBox、TextBox、CheckBox、ToolStrip、RichTextBox、Timer控件
  15. poj 2752 求一个字符串所有的相同前后缀
  16. python小数据池概念以及具体范围
  17. oracle11g-R2静默安装报错[INS-32013]解决方案
  18. Keras/tensorflow出现‘Loaded runtime CuDNN library: 7.0.5 but source was compiled with: 7.1.14’错误的解决办法
  19. Win10将用户名修改为英文
  20. Ansible 小手册系列 七(Ad-hoc)

热门文章

  1. RocketMQ综述(未完成)
  2. phpMyAdmin安装教程
  3. android studio - 提取局部变量,全局变量,方法快捷键
  4. .NET 4.0中的缓存功能
  5. Jquery学习笔记(9)--注册验证复习(未用到ajax)
  6. 小型web服务器thttpd的学习总结(下)
  7. poj 3246 Balanced Lineup(线段树)
  8. 用Vue.js递归组件构建一个可折叠的树形菜单
  9. JAVA图像缩放处理
  10. sqlserver更新表脚本