zoukankan      html  css  js  c++  java
  • Apache配置HTTPS的过程小记

    一、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:phpStudyApacheconfssl 下(放到哪里都可以,因为这个位置要写到httpd-ssl.conf中。)
     
    2、修改E:phpStudyApacheconfextrahttpd-ssl.conf文件,下面只列出要修改的内容
    DocumentRoot "D:allprojects tcmswaxs"(这里一定要写绝对路径,比如你写成DocumentRoot "/Apache24/htdocs",它会解释为E:/Apache24/htdocs)
    ServerName www.waxstest.com  //这里配啥,不重要,因为不管你配啥,任何域名都会起作用。好像没有起到绑定域名的作用。
    ErrorLog "E:phpStudyApachelogserror.log"
    TransferLog "E:phpStudyApachelogsaccess.log"
    SSLCertificateFile "E:phpStudyApacheconfsslserver.crt"  //这里就是实际证书的位置
    SSLCertificateKeyFile "E:phpStudyApacheconfsslserver.key"  //这时就是实际私钥的位置。
    CustomLog "E:phpStudyApachelogsssl_request.log"
     
    3、修改E:phpStudyApacheconfhttpd.conf,打开两行:
    LoadModule ssl_module modules/mod_ssl.so
    Include conf/extra/httpd-ssl.conf
    确保这两个文件存在 
     
    4、重启apache。如果用phpstudy这种集成环境重启不成功,只能到dos命令行,运行E:phpStudyApachein>httpd
    看报错,一步一步解决。
    比如

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

    最终重启apache成功。

    5、浏览器访问用https即可

     

    6、最后说两句

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

    其中这两行
    DocumentRoot "D:allprojects tcmswaxs"
    ServerName www.waxstest.com 
    我以为跟配置虚拟机vhosts.conf差不多,在vhosts.conf中比如

    <VirtualHost *:80>
    DocumentRoot "D:allprojects tcmsqinke"
    ServerName www.qinketest.com
    ServerAlias
    <Directory "D:allprojects tcmsqinke">
    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都可以访问)

     
  • 相关阅读:
    poj2528 Mayor&#39;s posters(线段树,离散化)
    管理线程之等待线程结束
    linux下使用DBCA(database configuration assistant)创建oracle数据库
    POJ 1765 November Rain
    PC端 java 开发蓝牙所遇到的问题
    CentOS 安装SVNclient
    unity3d 延迟运行脚本语句
    Q13.cocoapod_卡在“analyzing_depengcies”问题解决
    深度学习与计算机视觉系列(10)_细说卷积神经网络
    【COGS1672】【SPOJ375】QTREE
  • 原文地址:https://www.cnblogs.com/stringzero/p/6297622.html
Copyright © 2011-2022 走看看