阿里雲服務器配置SSL證書成功開啟Https(記錄趟過的各種坑)


環境:

  • 阿里雲雲服務器    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. 申請證書(某度很多教程的,大家自行搜索)

  2. 上傳證書

    登陸阿里雲控制台=》安全(雲盾)=》CA證書服務=》上傳原有證書(也可以直接買阿里雲的證書,這樣就不用上傳,不過個人網站一般是申請免費的證書)

  3. 開啟服務器443端口(https默認端口) 

    阿里雲控制台=》雲計算基礎服務=》雲服務器ECS=》網絡和安全=》安全組,沒有安全組的創建一個安全組,有的直接選擇相應安全組,點擊配置規則=》添加安全組規則(把80端口和443端口添加進安全組,授權對象填0.0.0.0/0)

  4. 開啟apache相應配置
    #修改httpd.conf文件

    LoadModule ssl_module modules/mod_ssl.so
    Include conf/extra/httpd-ssl.conf
    LoadModule rewrite_module
    #去掉上面三行前的"#"
    保存退出

  5. 在apache目錄下的conf目錄下新建一個cert目錄,將你的證書文件放在這里面

  6. 開啟php的openssl模塊,在phpstudy的“php擴展及設置”里面開啟即可

  7. 修改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>
       
  8. 重啟apache,看看能不能正常啟動,如果有異常,嘗試把第4步中httpd-ssl.conf代碼恢復注釋(把#重新加上去,保存退出),再次重啟apache,如果此時能夠正常啟動,則說明httpd-ssl.conf文件中有錯誤(是不是重復監聽了?證書路徑對不對?證書是否有效?),請認真檢查,直到能夠正常啟動apache

  9. 打開hosts文件
    我的hosts文件在C:\Windows\System32\drivers\etc目錄下
    用記事本打開,在127.0.0.1       localhost下面添加一句話:
    127.0.0.1       www..xxxxx.com     //這里替換成你的域名
    保存退出

  10. 修改.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>
    保存退出

  11. 檢查服務器是否已經關閉了windows自帶的IIS服務器(因為可能會占用apache的80端口),檢查是否關閉了系統防火牆,檢查是否有其他程序占用了80或者443端口。確認都已經關閉后進行下一步     (這里給大家貼一個端口掃描工具用於檢查:http://tool.chinaz.com/port/)

  12. 重啟apache

  13. 啟動瀏覽器檢查是否可以訪問localhost 及你的域名,並且域名頭部標志為https。如果不能正常訪問,請根據以上步驟重新檢查。

  14. SSL配置成功,能夠使用https訪問你的域名了!

 

       轉載注明出處,謝謝!
       有任何問題可以留言,我會盡力幫助大家的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM