您好,欢迎来到互劦cms 官方网站-内容管理系统,让你体验不一样的建站方式,更简单,更安全,更灵活
  • 登陆-注册
  • 使用手册
  • 常见问题
  • 全国服务热线:18173153117

    apache->apache开启https
  • apache开启https
  • 浏览次数:347 作者:旭日东升 日期:2019-01-05 10:55:04
  • 阿里云云服务器    Windows Server 2008 标准版 SP2 中文版(趁1212优惠买的一年的水货配置)
    阿里云购买的域名(已备案、已解析)
    服务器:phpstudy:php5.4.45+Apache(因为是phpstudy集成的,所以没找到apache的版本,我感觉应该是2.4.8之前的版本)
    SSL证书 (配置过程中,我申请了2个不同机构的证书,第一个GG了,是在  

     https://www.trustasia.com/   申请的1年免费证书。成功的是用的第二个,在  https://www.myssl.cn/products/freessl.html   申请的1个月的试用证书。所以是我技术问题还是???)


    步骤:

    申请证书->啊里云->产品 ->搜索ssl证书->安装步骤申请

    上传证书

    登陆阿里云控制台=》安全(云盾)=》CA证书服务=》上传原有证书(也可以直接买阿里云的证书,这样就不用上传,不过个人网站一般是申请免费的证书)

    开启服务器443端口(https默认端口) 

    阿里云控制台=》云计算基础服务=》云服务器ECS=》网络和安全=》安全组,没有安全组的创建一个安全组,有的直接选择相应安全组,点击配置规则=》添加安全组规则(把80端口和443端口添加进安全组,授权对象填0.0.0.0/0)

    开启apache相应配置
    #修改httpd.conf文件
    LoadModule ssl_module modules/mod_ssl.so
    Include conf/extra/httpd-ssl.conf
    LoadModule rewrite_module
    #去掉上面三行前的"#"
    保存退出


    在apache目录下的conf目录下新建一个cert目录,将你的证书文件放在这里面

    开启php的openssl模块,在phpstudy的“php扩展及设置”里面开启即可

    修改httpd-ssl.conf文件,保存退出
    在..\Apache\conf\extra目录下,打开httpd-ssl.conf文件(注:先备份一遍,以免出错,因为这个文件的错误我重装phpstuy不下10回)
    在文件里定位到  Listen 443  这句话这里,把  从这句话到这个文件结尾的文本    全部注释掉或者删除掉,替换成以下代码
    Listen 443               //这里强调一下,如果Listen 443这句代码在这个文件里重复出现了,即重复监听,apache会报错,然后不能启动
    还有phpstudy的很多路径为/apache2.4/这样的没注释都替换成C:/phpStudy/Apache/ 启动才会成功
      SSLEngine on
      SSLProtocol all -SSLv2 -SSLv3  //去除不安全协议的
      SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL   //加密的
      SSLCertificateFile "C:/phpStudy/Apache/conf/ssl/2_www.weiduweilan.cn.crt"  //证书公钥
      SSLCertificateKeyFile "C:/phpStudy/Apache/conf/ssl/3_www.weiduweilan.cn.key"  //证书私钥
      SSLCertificateChainFile "C:/phpStudy/Apache/conf/ssl/1_root_bundle.crt" //根证书
      DocumentRoot  "C:\phpStudy\WWW\Zerg\public"
    <VirtualHost *:443>
        #这里的路径设置你的网站根目录
        DocumentRoot "C:\phpStudy\PHPTutorial\WWW"   
        #这里xxxxx.com替换成你的域名
        ServerName www.xxxxx.com     
        #这里xxxxx.com替换成你的域名
          
        #这里的路径设置你的网站根目录     
        <Directory "C:\phpStudy\PHPTutorial\WWW">       
            Options FollowSymLinks ExecCGI
            AllowOverride All
            Order allow,deny
            Allow from all
            Require all granted
        </Directory>
        SSLEngine on
        #你的公钥文件
        SSLCertificateFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/server.crt"              
       #你的私钥文件(有的机构命名为private或者以你的域名为文件名命名)
        SSLCertificateKeyFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/server.key"      
        #证书链文件(有的机构命名为CA) 我尝试过注释掉这个选项,结果apache不能运行
        SSLCertificateChainFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/chain.crt"         
    </VirtualHost>
       
    重启apache,看看能不能正常启动,如果有异常,尝试把第4步中httpd-ssl.conf代码恢复注释(把#重新加上去,保存退出),再次重启apache,如果此时能够正常启动,则说明httpd-ssl.conf文件中有错误(是不是重复监听了?证书路径对不对?证书是否有效?),请认真检查,直到能够正常启动apache


    修改.htaccess文件,使域名重定向到https(这样访问域名的时候就不用手动写https://,它会自动添加的)
    在你的网站的根目录(我的是WWW目录)下添加或者修改.htaccess文件,代码如下
    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
    Options +FollowSymLinks
    order allow,deny
    allow from all 
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
    </IfModule>
    保存退出
    重启apache

    启动浏览器检查是否可以访问localhost 及你的域名,并且域名头部标志为https。如果不能正常访问,请根据以上步骤重新检查。

    SSL配置成功,能够使用https访问你的域名了!

  • 站内地图

    Copyright 2018-2028 hlcms. All Rights Reserved. 湘ICP备13008873号-1