如何配置雲伺服器 CentOS 7.0 系統 Apache HTTPS 服務
阿新 • • 發佈:2018-12-10
弄好SSL證書之後就可以開始配置HTTPS服務了。這裡我直接使用的阿里雲的PHP環境映象,測試環境如下:
- CentOS 7.0 (https://www.centos.org/)
- Apache httpd 2.4.6 (http://httpd.apache.org)
- OpenSSL 1.0.1 (http://www.openssl.org/source)
1.連線到伺服器
這裡我用的是Xshell,連線方法就不說了,網上很多教程。
2.安裝mod_ssl模組
首先檢查是否已安裝SSL軟體
[root@Ayase ~]# rpm -qa | grep mod_ssl
如果發現什麼都沒顯示說明沒有安裝,沒有安裝mod_ssl模組,Web伺服器就無法提供SSL服務。
[root@Ayase httpd]# rpm -qa | grep mod_ssl
[root@Ayase httpd]#
可使用yum線上更新方式安裝。
[root@Ayase ~]# yum install -y mod_ssl //安裝SSL軟體
Dependencies Resolved
==================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================
Installing:
mod_ssl x86_64 1 :2.4.6-80.el7.centos.1 updates 111 k
Updating for dependencies:
httpd x86_64 2.4.6-80.el7.centos.1 updates 2.7 M
httpd-devel x86_64 2.4 .6-80.el7.centos.1 updates 196 k
httpd-tools x86_64 2.4.6-80.el7.centos.1 updates 90 k
openssl x86_64 1:1.0.2k-12.el7 base 492 k
openssl-libs x86_64 1:1.0.2k-12.el7 base 1.2 M
Transaction Summary
==================================================================================================================================================
Install 1 Package
Upgrade ( 5 Dependent packages)
Total download size: 4.8 M
Installed:
mod_ssl.x86_64 1:2.4.6-80.el7.centos.1
Dependency Updated:
httpd.x86_64 0:2.4.6-80.el7.centos.1 httpd-devel.x86_64 0:2.4.6-80.el7.centos.1 httpd-tools.x86_64 0:2.4.6-80.el7.centos.1
openssl.x86_64 1:1.0.2k-12.el7 openssl-libs.x86_64 1:1.0.2k-12.el7
Complete! //完成
安裝成功後再次執行會顯示版本資訊:
[[email protected] httpd]# rpm -qa | grep mod_ssl
mod_ssl-2.4.6-80.el7.centos.1.x86_64
3.下載與上傳證書
從阿里雲下載證書後一共是四個檔案
在Apache的安裝目錄(/etc/httpd)下建立cert目錄,並將上面四個檔案上傳到該目錄。
[root@Ayase ~]# mkdir /etc/httpd/cert
[root@Ayase ~]# cd /etc/httpd/cert/
使用Xshell上傳檔案可點選工具欄的新建檔案傳輸按鈕,彈出框後點擊取消會跳轉到另一個標籤頁,此時可將四個檔案直接拖到黑視窗進行上傳。
4.配置SSL
首先編輯SSL配置檔案,檢查埠是否為443及前面是否有#號,LoadModule是指支援HTTP所需要的模組,如果沒有LoadModule,可手動新增一行LoadModule ssl_module modules/mod_ssl.so
[[email protected] ~]# vim /etc/httpd/conf.d/ssl.conf //編輯SSL配置檔案,也可能是/etc/httpd/conf/extra/httpd-ssl.conf檔案,與作業系統及安裝方式有關)
LoadModule ssl_module modules/mod_ssl.so //支援SSL模組
#
# When we also provide SSL we have to listen to the
# the HTTPS port in addition.
#
Listen 443 https //http ssl預設埠為443,如果有#號需刪除才可以使用
修改相應的證書資訊(配置檔案中這些條目並不是挨著的),可以在阿里雲證書下載頁面複製該資訊然後將原有的註釋掉。
# 新增 SSL 協議支援協議,去掉不安全的協議
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 證書公鑰配置
SSLCertificateFile /etc/httpd/cert/public.pem //你的對應證書檔案路徑
# 證書私鑰配置
SSLCertificateKeyFile /etc/httpd/cert/111111111111111.key //你的對應證書檔案路徑(將檔名改成你自己的)
# 證書鏈配置,如果該屬性開頭有 '#'字元,請刪除掉
SSLCertificateChainFile /etc/httpd/cert/chain.pem //你的對應證書檔案路徑
修改並退出。
5.配置防火牆
SSL服務必須在防火牆配置中開啟443埠,HTTPS才可以對外連線。
[[email protected] ~]# vim /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT //SSL埠
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
防火牆配置完成後,必須重新啟動防火牆服務,配置才會生效。
[root@Ayase ~]# service iptables restart
Redirecting to /bin/systemctl restart iptables.service
6.重啟apache服務
一切配置完成後,必須重新啟動apache服務,Apache配置都會生效。
[root@Ayase httpd]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
7.測試Apache SSL正常執行
在瀏覽器中輸入【https://IP或網址】,如果出現如下圖所示的頁面,表示成功配置HTTPS服務。若是顯示不安全且證書顯示為invalid,但是點選【繼續瀏覽些網站(不推薦)】仍可訪問,則可能是證書配置錯誤,檢查證書是否過期或路徑是否有誤。