Apache服務(wù)器上如何安裝SSL證書?
前提條件
您的Apache服務(wù)器上已經(jīng)開啟了443端口(HTTPS服務(wù)的默認(rèn)端口)。
您的Apache服務(wù)器上已安裝了mod_ssl.so模塊(啟用SSL功能)。
本文檔證書名稱以domain name為示例,例如:證書文件名稱為domain name_public.crt,證書鏈文件名稱為domain name_chain.crt,證書密鑰文件名稱為domain name.key。
申請證書時如果未選擇系統(tǒng)自動創(chuàng)建CSR,證書下載壓縮包中將不包含.key文件。
說明 .crt擴(kuò)展名的證書文件采用Base64-encoded的PEM格式文本文件,可根據(jù)需要修改成.pem等擴(kuò)展名。 證書格式詳細(xì)內(nèi)容,請參見主流數(shù)字證書都有哪些格式?
操作步驟
解壓已下載保存到本地的Apache證書文件。
解壓后的文件夾中有3個文件:證書文件
證書文件:以.crt為后綴或文件類型。
證書鏈文件:以.crt為后綴或文件類型。
密鑰文件:以.key為后綴或文件類型。
在Apache安裝目錄中新建cert目錄,并將解壓的Apache證書、證書鏈文件和密鑰文件拷貝到cert目錄中。如果需要安裝多個證書,需在Apache目錄中新建對應(yīng)數(shù)量的cert目錄,用于存放不同的證書 。
說明 如果申請證書時選擇了手動創(chuàng)建CSR文件,請將手動生成創(chuàng)建的密鑰文件拷貝到cert目錄中并命名為domain name.key。
修改httpd.conf配置文件。
在Apache安裝目錄下,打開Apache/conf/httpd.conf文件,并找到以下參數(shù),按照下文中注釋內(nèi)容進(jìn)行配置。
#LoadModule ssl_module modules/mod_ssl.so #刪除行首的配置語句注釋符號“#”加載mod_ssl.so模塊啟用SSL服務(wù),Apache默認(rèn)是不啟用該模塊的。
#Include conf/extra/httpd-ssl.conf #刪除行首的配置語句注釋符號“#”。
說明 如果您在httpd.conf文件中沒有找到以上配置語句,請確認(rèn)您的Apache服務(wù)器中是否已經(jīng)安裝mod_ssl.so模塊??蓤?zhí)行yum install -y mod_ssl命令安裝mod_ssl模塊。
保存httpd.conf文件并退出。
修改httpd-ssl.conf配置文件。
打開Apache/conf/extra/httpd-ssl.conf文件并找到以下參數(shù),按照下文中注釋內(nèi)容進(jìn)行配置。
說明 根據(jù)操作系統(tǒng)的不同,http-ssl.conf文件也可能存放在conf.d/ssl.conf目錄中。
<VirtualHost *:443>
ServerName #修改為申請證書時綁定的域名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替換成您證書文件名。
SSLCertificateKeyFile cert/domain name1.key # 將domain name1.key替換成您證書的密鑰文件名。
SSLCertificateChainFile cert/domain name1_chain.crt # 將domain name1_chain.crt替換成您證書的密鑰文件名;證書鏈開頭如果有#字符,請刪除。
</VirtualHost>
#如果證書包含多個域名,復(fù)制以上參數(shù),并將ServerName替換成第二個域名。
<VirtualHost *:443>
ServerName #修改為申請證書時綁定的第二個域名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替換成您申請證書時的第二個域名。
SSLCertificateKeyFile cert/domain name2.key # 將domain name2替換成您申請證書時的第二個域名。
SSLCertificateChainFile cert/domain name2_chain.crt # 將domain name2替換成您申請證書時的第二個域名;證書鏈開頭如果有#字符,請刪除。
</VirtualHost>
說明 需注意您的瀏覽器版本是否支持SNI功能。如果不支持,多域名證書配置將無法生效。
保存httpd-ssl.conf文件并退出。
重啟Apache服務(wù)器使SSL配置生效。
在Apache的bin目錄下執(zhí)行以下命令:
停止Apache服務(wù)。
apachectl -k stop
開啟Apache服務(wù)。
apachectl -k start
可選:修改httpd.conf文件,設(shè)置HTTP請求自動跳轉(zhuǎn)HTTPS。
在httpd.conf文件中的<VirtualHost *:80> </VirtualHost>中間,添加以下重定向代碼。
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
后續(xù)操作
證書安裝完成后,您可通過登錄證書的綁定域名驗證該證書是否安裝成功。
https://domain name #domain name替換成證書綁定的域名。
如果網(wǎng)頁地址欄出現(xiàn)小鎖標(biāo)志,表示證書安裝成功。
DV SSL、OV SSL數(shù)字證書部署在服務(wù)器上后,您的瀏覽器訪問網(wǎng)站時,展示以下效果:DV/OV證書安裝效果圖
證書安裝完成后,如果網(wǎng)站無法通過https正常訪問,需確認(rèn)您安裝證書的服務(wù)器443端口是否已開啟或被其他工具攔截。如果您使用的是阿里云ECS服務(wù)器,請前往ECS控制臺安全組頁面配置放行443端口。
我們從以下三個方面,對比純靜態(tài)和偽靜態(tài)兩種靜態(tài)頁面生成方式,逐一展開分析。
用JS的正則表達(dá)式如何判斷輸入框內(nèi)為中文或者是英文數(shù)字,或者是三者混編
css制作扇形
純CSS3文字Loading動畫特效
PhpStorm 2022.1 EAP 3 在 PHPDoc 和屬性中添加了對多行和嵌套數(shù)組形狀的完全支持:在這種情況下,可以使用數(shù)組形狀注釋定義數(shù)組結(jié)構(gòu),以獲得鍵的代碼補(bǔ)全并推斷值的類型。
PHP作為Web界第一大語言近年來熱度不夠,但是這幾年的進(jìn)步和成長卻沒有中斷。在2022伊始,我們來一起學(xué)習(xí)一下目前PHP的現(xiàn)狀以及最新版本帶來的特性。
Linux程序前臺后臺切換:在Linux終端運(yùn)行命令的時候,在命令末尾加上 & 符號,就可以讓程序在后臺運(yùn)行Ubuntu$">root@Ubuntu$ ./tcpserv01 &
Python 的正則表達(dá)式支持 多行模式,將每行文字分別匹配。然而各種操作系統(tǒng)里,換行符的表示法各不相同,會導(dǎo)致 Python 不能正確使用多行模式。