SSL證書(shū)可以保護(hù)網(wǎng)站的基本安全,網(wǎng)站部署SSL證書(shū)之后會(huì)由之前的http://升級(jí)為https://,因此又被稱(chēng)為https證書(shū)。https證書(shū)支持下載證書(shū)安裝到Apache服務(wù)器,從而使Apache服務(wù)器支持https安全訪(fǎng)問(wèn),本文主要為大家分享在Apache安裝SSL證書(shū)部署https的詳細(xì)教程步驟。
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、虛擬主機(jī)、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、鎮(zhèn)沅網(wǎng)站維護(hù)、網(wǎng)站推廣。
一、準(zhǔn)備工作
1)您的Apache服務(wù)器上已經(jīng)開(kāi)啟了443端口(HTTPS服務(wù)的默認(rèn)端口)。
2)您的Apache服務(wù)器上已安裝了mod_ssl.so模塊(啟用SSL功能)。
3)本文檔證書(shū)名稱(chēng)以domain name為示例,例如:證書(shū)文件名稱(chēng)為domain name_public.crt,證書(shū)鏈文件名稱(chēng)為domain name_chain.crt,證書(shū)密鑰文件名稱(chēng)為domain name.key。
4)可以在本站申請(qǐng)SSL證書(shū),申請(qǐng)證書(shū)時(shí)如果未選擇系統(tǒng)自動(dòng)創(chuàng)建CSR,證書(shū)下載壓縮包中將不包含.key文件。
SSL證書(shū)品牌推薦:GeoTrust(國(guó)際大品牌,性?xún)r(jià)比高)、Globalsign(國(guó)際大品牌,支持中文站點(diǎn))、Comodo(國(guó)際大品牌,申請(qǐng)價(jià)格便宜)
二、開(kāi)始在Apache安裝SSL證書(shū)
1、解壓已下載保存到本地的Apache證書(shū)文件。
解壓后的文件夾中有3個(gè)文件:
證書(shū)文件:以.crt為后綴或文件類(lèi)型。
證書(shū)鏈文件:以.crt為后綴或文件類(lèi)型。
密鑰文件:以.key為后綴或文件類(lèi)型。
2、在Apache安裝目錄中新建cert目錄,并將解壓的Apache證書(shū)、證書(shū)鏈文件和密鑰文件拷貝到cert目錄中。如果需要安裝多個(gè)證書(shū),需在Apache目錄中新建對(duì)應(yīng)數(shù)量的cert目錄,用于存放不同的證書(shū) 。
注:如果申請(qǐng)證書(shū)時(shí)選擇了手動(dòng)創(chuàng)建CSR文件,請(qǐng)將手動(dòng)生成創(chuàng)建的密鑰文件拷貝到cert目錄中并命名為domain name.key。
3、修改httpd.conf配置文件。
1)在Apache安裝目錄下,打開(kāi)Apache/conf/httpd.conf文件,并找到以下參數(shù),按照下文中注釋內(nèi)容進(jìn)行配置。
#LoadModule ssl_module modules/mod_ssl.so #刪除行首的配置語(yǔ)句注釋符號(hào)“#”加載mod_ssl.so模塊啟用SSL服務(wù),Apache默認(rèn)是不啟用該模塊的。
#Include conf/extra/httpd-ssl.conf #刪除行首的配置語(yǔ)句注釋符號(hào)“#”。
注:如果您在httpd.conf文件中沒(méi)有找到以上配置語(yǔ)句,請(qǐng)確認(rèn)您的Apache服務(wù)器中是否已經(jīng)安裝mod_ssl.so模塊??蓤?zhí)行yum install -y mod_ssl命令安裝mod_ssl模塊。
2)保存httpd.conf文件并退出。
4、修改httpd-ssl.conf配置文件。
1)打開(kāi)Apache/conf/extra/httpd-ssl.conf文件并找到以下參數(shù),按照下文中注釋內(nèi)容進(jìn)行配置。
注:根據(jù)操作系統(tǒng)的不同,http-ssl.conf文件也可能存放在conf.d/ssl.conf目錄中。
ServerName #修改為申請(qǐng)證書(shū)時(shí)綁定的域名www.YourDomainName1.com。
DocumentRoot /data/www/hbappserver/public
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 # 添加SSL協(xié)議支持協(xié)議,去掉不安全的協(xié)議。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP: MEDIUM # 修改加密套件。
SSLHonorCipherOrder on
SSLCertificateFile cert/domain name1_public.crt # 將domain name1_public.crt替換成您證書(shū)文件名。
SSLCertificateKeyFile cert/domain name1.key # 將domain name1.key替換成您證書(shū)的密鑰文件名。
SSLCertificateChainFile cert/domain name1_chain.crt # 將domain name1_chain.crt替換成您證書(shū)的密鑰文件名;證書(shū)鏈開(kāi)頭如果有#字符,請(qǐng)刪除。
#如果證書(shū)包含多個(gè)域名,復(fù)制以上參數(shù),并將ServerName替換成第二個(gè)域名。
ServerName #修改為申請(qǐng)證書(shū)時(shí)綁定的第二個(gè)域名www.YourDomainName2.com。
DocumentRoot /data/www/hbappserver/public
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 # 添加SSL協(xié)議支持協(xié)議,去掉不安全的協(xié)議。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP: MEDIUM # 修改加密套件。
SSLHonorCipherOrder on
SSLCertificateFile cert/domain name2_public.crt # 將domain name2替換成您申請(qǐng)證書(shū)時(shí)的第二個(gè)域名。
SSLCertificateKeyFile cert/domain name2.key # 將domain name2替換成您申請(qǐng)證書(shū)時(shí)的第二個(gè)域名。
SSLCertificateChainFile cert/domain name2_chain.crt # 將domain name2替換成您申請(qǐng)證書(shū)時(shí)的第二個(gè)域名;證書(shū)鏈開(kāi)頭如果有#字符,請(qǐng)刪除。
注:需注意您的瀏覽器版本是否支持SNI功能。如果不支持,多域名證書(shū)配置將無(wú)法生效。
2)保存httpd-ssl.conf文件并退出。
5、重啟Apache服務(wù)器使SSL配置生效。
在Apache的bin目錄下執(zhí)行以下命令:
1)停止Apache服務(wù)。
apachectl -k stop
2)開(kāi)啟Apache服務(wù)。
apachectl -k start
6、修改httpd.conf文件,設(shè)置HTTP請(qǐng)求自動(dòng)跳轉(zhuǎn)HTTPS。
在httpd.conf文件中的
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
7、SSL證書(shū)安裝完成后,您可通過(guò)登錄證書(shū)的綁定域名驗(yàn)證該證書(shū)是否安裝成功。
https://domain name #domain name替換成證書(shū)綁定的域名。
如果網(wǎng)頁(yè)地址欄出現(xiàn)小鎖標(biāo)志,表示證書(shū)安裝成功。
注:SSL證書(shū)安裝完成后,如果網(wǎng)站無(wú)法通過(guò)https正常訪(fǎng)問(wèn),需確認(rèn)您安裝證書(shū)的服務(wù)器443端口是否已開(kāi)啟或被其他工具攔截。如果您使用的是阿里云ECS服務(wù)器,請(qǐng)前往ECS控制臺(tái)安全組頁(yè)面配置放行443端口。