目前條件是:apache未安裝任何ssl擴展模塊,接下來我們安裝ssl模塊并配置它,最終讓它實現http自動跳轉到https。
首先在Linux下面安裝ssl(我用的是Cenots系統):
yum -y install mod_ssl ##安裝apache ssl模塊
/usr/sbin/httpd -k restart ##重啟apache服務,提示了下面錯誤:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using xxx.xxx.69.50. Set the 'ServerName' directive globally to suppress this message
簡單處理一下,編輯vim /etc/httpd/conf.d/mysite.conf ##你的名稱也許不同,修改apache配置文件,在結尾處增加 ServerName localhost:80
運行命令netstat -tunlp 命令查看443是否運行。
并且在/etc/httpd/conf/conf.modules.d/下面會多出一個00-ssl.conf文件,在/etc/httpd/conf.d/下面會多出一個ssl.conf文件。
現在我們需要將證書文件,一般是一個xxxx.crt文件(也有可能是兩個crt文件)+ 一個xxxx.key文件,拷貝到你的服務上隨便某個位置,建議是/etc/pki/tls/certs/下面
接下來編輯/etc/httpd/conf/ssl.conf文件,大約在59行的位置添加兩行:
DocumentRoot "/www/xxxx/xxxx" ##指定你的網站存放目錄
ServerName www.agfkahf.com:443 ##綁定您的域名
SSLCertificateFile /etc/pki/tls/certs/localhost.crt ##大約在100行左右,指定你的證書文件
SSLCertificateKeyFile /etc/pki/tls/certs/localhost.key ##大約在107行左右,指定你的秘鑰文件
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt ##大約在116行,指定你的Chain證書文件
保持并退出文件,重啟apache服務,截止目前我們的證書就配置完了。你可以通過訪問https://www.你的域名來訪問是否生效。如果你的訪問無法打開網站,請繼續向下看。
如果打不開網站,請注意:在諸多服務安全設置的情況下443需要進行開啟設置,比如通過你的防火墻增加443端口,或通過云安全策略增加443的規則。
如果你開啟了linux自身的防火墻功能,請檢查規則:
# Generated by iptables-save v1.4.21 on Tue Sep 8 23:24:34 2020
*filter:
INPUT DROP [127538:5288907]:
FORWARD ACCEPT [0:0]:
OUTPUT ACCEPT [89000968:203456962330]
:syn-flood - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -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 20000:30000 -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 443 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT# Completed on Tue Sep 8 23:24:34 2020
最后,我們來設置http自動跳轉到https上面的規則:
我們是通過修改網站根目錄下面的.htaccess文件配置的規則,當然你也可以通過httpd.conf進行配置。
RewriteEngine On ##找到這行字母,在下面添加以下3行。
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
截止目前,Apache ssl證書環境就搭建完畢了。





