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