阿里云服務(wù)器apache配置SSL證書(shū)成功開(kāi)啟Https的教程

2019-01-24 09:27:17 來(lái)源:csdn 作者:mdxy-dxy 人氣: 次閱讀 1105 條評(píng)論

文章主要介紹了阿里云服務(wù)器apache配置SSL證書(shū)成功開(kāi)啟Https(記錄趟過(guò)的各種坑),需要的朋友可以參考下環(huán)境:阿里云云服務(wù)器 Windows Server 2008 標(biāo)準(zhǔn)版 SP2 中文版(趁1212優(yōu)...

  文章主要介紹了阿里云服務(wù)器apache配置SSL證書(shū)成功開(kāi)啟Https(記錄趟過(guò)的各種坑),需要的朋友可以參考下。

環(huán)境:

  阿里云云服務(wù)器 Windows Server 2008 標(biāo)準(zhǔn)版 SP2 中文版(趁1212優(yōu)惠買(mǎi)的一年的水貨配置)

  阿里云購(gòu)買(mǎi)的域名(已備案、已解析)

  服務(wù)器:phpstudy:php5.4.45+Apache(因?yàn)槭莗hpstudy集成的,所以沒(méi)找到apache的版本,我感覺(jué)應(yīng)該是2.4.8之前的版本)

  SSL證書(shū) (配置過(guò)程中,我申請(qǐng)了2個(gè)不同機(jī)構(gòu)的證書(shū),第一個(gè)GG了,是在 https://www.trustasia.com/ 申請(qǐng)的1年免費(fèi)證書(shū)。成功的是用的第二個(gè),在 https://www.myssl.cn/products/freessl.html 申請(qǐng)的1個(gè)月的試用證書(shū)。所以是我技術(shù)問(wèn)題還是???)

步驟:

  申請(qǐng)證書(shū)(某度很多教程的,大家自行搜索)

上傳證書(shū)

  登陸阿里云控制臺(tái)=》安全(云盾)=》CA證書(shū)服務(wù)=》上傳原有證書(shū)(也可以直接買(mǎi)阿里云的證書(shū),這樣就不用上傳,不過(guò)個(gè)人網(wǎng)站一般是申請(qǐng)免費(fèi)的證書(shū))

開(kāi)啟服務(wù)器443端口(https默認(rèn)端口)

  阿里云控制臺(tái)=》云計(jì)算基礎(chǔ)服務(wù)=》云服務(wù)器ECS=》網(wǎng)絡(luò)和安全=》安全組,沒(méi)有安全組的創(chuàng)建一個(gè)安全組,有的直接選擇相應(yīng)安全組,點(diǎn)擊配置規(guī)則=》添加安全組規(guī)則(把80端口和443端口添加進(jìn)安全組,授權(quán)對(duì)象填0.0.0.0/0)

開(kāi)啟apache相應(yīng)配置

#修改httpd.conf文件

LoadModule ssl_module modules/mod_ssl.so

Include conf/extra/httpd-ssl.conf

LoadModule rewrite_module

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

保存退出

在apache目錄下的conf目錄下新建一個(gè)cert目錄,將你的證書(shū)文件放在這里面

開(kāi)啟php的openssl模塊,在phpstudy的“php擴(kuò)展及設(shè)置”里面開(kāi)啟即可

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

在..\Apache\conf\extra目錄下,打開(kāi)httpd-ssl.conf文件(注:先備份一遍,以免出錯(cuò),因?yàn)檫@個(gè)文件的錯(cuò)誤我重裝phpstuy不下10回)

在文件里定位到 Listen 443 這句話這里,把 從這句話到這個(gè)文件結(jié)尾的文本 全部注釋掉或者刪除掉,替換成以下代碼:

Listen 443 //這里強(qiáng)調(diào)一下,如果Listen 443這句代碼在這個(gè)文件里重復(fù)出現(xiàn)了,即重復(fù)監(jiān)聽(tīng),apache會(huì)報(bào)錯(cuò),然后不能啟動(dòng)

SSLStrictSNIVHostCheck off

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

SSLProtocol all -SSLv2 -SSLv3

#這里的路徑設(shè)置你的網(wǎng)站根目錄

DocumentRoot "C:\phpStudy\PHPTutorial\WWW"

#這里xxxxx.com替換成你的域名

ServerName www.xxxxx.com

#這里xxxxx.com替換成你的域名

ServerAlias xxxxx.com

#這里的路徑設(shè)置你的網(wǎng)站根目錄

Options FollowSymLinks ExecCGI

AllowOverride All

Order allow,deny

Allow from all

Require all granted

SSLEngine on

#你的公鑰文件

SSLCertificateFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/server.crt"

#你的私鑰文件(有的機(jī)構(gòu)命名為private或者以你的域名為文件名命名)

SSLCertificateKeyFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/server.key"

#證書(shū)鏈文件(有的機(jī)構(gòu)命名為CA) 我嘗試過(guò)注釋掉這個(gè)選項(xiàng),結(jié)果apache不能運(yùn)行

SSLCertificateChainFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/chain.crt"

  重啟apache,看看能不能正常啟動(dòng),如果有異常,嘗試把第4步中httpd-ssl.conf代碼恢復(fù)注釋(把#重新加上去,保存退出),再次重啟apache,如果此時(shí)能夠正常啟動(dòng),則說(shuō)明httpd-ssl.conf文件中有錯(cuò)誤(是不是重復(fù)監(jiān)聽(tīng)了?證書(shū)路徑對(duì)不對(duì)?證書(shū)是否有效?),請(qǐng)認(rèn)真檢查,直到能夠正常啟動(dòng)apache

  打開(kāi)hosts文件

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

  用記事本打開(kāi),在127.0.0.1 localhost下面添加一句話:

127.0.0.1 www..xxxxx.com //這里替換成你的域名

  保存退出

  修改.htAccess文件,使域名重定向到https(這樣訪問(wèn)域名的時(shí)候就不用手動(dòng)寫(xiě)https://,它會(huì)自動(dòng)添加的)

  在你的網(wǎng)站的根目錄(我的是WWW目錄)下添加或者修改.htaccess文件,代碼如下:

RewriteEngine On

RewriteCond %{SERVER_PORT} 80

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

Options +FollowSymLinks

order allow,deny

allow from all

RewriteEngine on

RewriteBase /

RewriteCond %{SERVER_PORT} !^443$

RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]

  保存退出

  檢查服務(wù)器是否已經(jīng)關(guān)閉了windows自帶的IIS服務(wù)器(因?yàn)榭赡軙?huì)占用apache的80端口),檢查是否關(guān)閉了系統(tǒng)防火墻,檢查是否有其他程序占用了80或者443端口。確認(rèn)都已經(jīng)關(guān)閉后進(jìn)行下一步 (這里給大家貼一個(gè)端口掃描工具用于檢查:http://tool.chinaz.com/port/)

  重啟apache

  啟動(dòng)瀏覽器檢查是否可以訪問(wèn)localhost 及你的域名,并且域名頭部標(biāo)志為https。如果不能正常訪問(wèn),請(qǐng)根據(jù)以上步驟重新檢查。

  SSL配置成功,能夠使用https訪問(wèn)你的域名了!