阿里云服务器配置SSL证书成功开启Https(记录趟过的各种坑)

阿里云地址文档:https://help.aliyun.com/document_detail/98727.html?spm=5176.2020520163.0.0.5f9e0lDf0lDfXf 

 

阿里云服务器配置SSL证书成功开启Https(记录趟过的各种坑)

2017-12-29 20:06:30 皮蛋瘦肉没有肉 阅读数 16616  收藏 更多

分类专栏: 服务器

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/zzp961224/article/details/78934310

环境:

  • 阿里云云服务器    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个月的试用证书。所以是我技术问题还是???)

 

步骤:

  1. 申请证书(某度很多教程的,大家自行搜索)

 

  1. 上传证书

 

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

 

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

 

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

 

  1. 开启apache相应配置

#修改httpd.conf文件

LoadModule ssl_module modules/mod_ssl.so

Include conf/extra/httpd-ssl.conf

LoadModule rewrite_module

#去掉上面三行前的"#"

保存退出

 

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

 

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

 

  1. 修改httpd-ssl.conf文件,保存退出

..\Apache\conf\extra目录下,打开httpd-ssl.conf文件(注:先备份一遍,以免出错,因为这个文件的错误我重装phpstuy不下10回)

在文件里定位到  Listen 443  这句话这里,把  从这句话到这个文件结尾的文本    全部注释掉或者删除掉,替换成以下代码

Listen 443               //这里强调一下,如果Listen 443这句代码在这个文件里重复出现了,即重复监听,apache会报错,然后不能启动

SSLStrictSNIVHostCheck off

SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL

SSLProtocol all -SSLv2 -SSLv3

<VirtualHost *:443>

    #这里的路径设置你的网站根目录

    DocumentRoot "C:\phpStudy\PHPTutorial\WWW"   

    #这里xxxxx.com替换成你的域名

    ServerName www.xxxxx.com     

    #这里xxxxx.com替换成你的域名

    ServerAlias 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>

   

  1. 重启apache,看看能不能正常启动,如果有异常,尝试把第4步中httpd-ssl.conf代码恢复注释(把#重新加上去,保存退出),再次重启apache,如果此时能够正常启动,则说明httpd-ssl.conf文件中有错误(是不是重复监听了?证书路径对不对?证书是否有效?),请认真检查,直到能够正常启动apache

 

  1. 打开hosts文件

我的hosts文件在C:\Windows\System32\drivers\etc目录下

用记事本打开,在127.0.0.1       localhost下面添加一句话:

127.0.0.1       www..xxxxx.com     //这里替换成你的域名

保存退出

 

  1. 修改.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>

保存退出

 

  1. 检查服务器是否已经关闭了windows自带的IIS服务器(因为可能会占用apache的80端口),检查是否关闭了系统防火墙,检查是否有其他程序占用了80或者443端口。确认都已经关闭后进行下一步     (这里给大家贴一个端口扫描工具用于检查:http://tool.chinaz.com/port/)

 

  1. 重启apache

 

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

 

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

 

       转载注明出处,谢谢!

       有任何问题可以留言,我会尽力帮助大家的。

 

 

 

  • qq_361509471个月前#6楼谢谢大神,熬了一夜在阿里ECS windows server 2012rs ,phpstudy v8.0.9.3(apache2.4.39 php7.1.9nts_p)环境下还要在<VirtualHost *:443> ……</VirtualHost>之间加如下3条语句,不然 php 不解析
  1. FcgidInitialEnv PHPRC "C:/phpstudy_pro/Extensions/php/php7.1.9nts_p"
  2. AddHandler fcgid-script .php
  3. FcgidWrapper "C:/phpstudy_pro/Extensions/php/php7.1.9nts_p/php-cgi.exe" .php

上面3增加的3条语句,本人是在conf/vhosts目录里打开localhost_80.conf 文件找到的

 

posted @ 2020-07-07 14:36  Smile☆  阅读(511)  评论(0编辑  收藏  举报