配置CentOS上的Apache2以支持HTTPS涉及幾個步驟,包括獲取SSL證書、安裝必要的軟件包、配置Apache以及重啟服務。以下是一個詳細的指南:
首先,你需要一個SSL證書。你可以從證書頒發機構(CA)購買一個證書,或者使用Let’s Encrypt免費生成一個證書。
安裝Certbot:
sudo yum install certbot python3-certbot-apache
獲取并安裝證書:
sudo certbot --apache
按照提示完成證書的獲取和安裝。Certbot會自動修改Apache的配置文件。
確保你已經安裝了Apache及其必要的模塊。
sudo yum install httpd mod_ssl
編輯Apache的主配置文件 /etc/httpd/conf/httpd.conf
。
啟用SSL模塊: 確保以下行沒有被注釋掉:
LoadModule ssl_module modules/mod_ssl.so
配置虛擬主機:
找到你的虛擬主機配置塊(通常在 /etc/httpd/conf.d/
或 /etc/httpd/conf.e/
目錄下),并確保它包含以下內容:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/yourdomain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
SSLCertificateChainFile /etc/pki/tls/certs/ca-bundle.crt
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
請將 yourdomain.com
替換為你的實際域名,并確保證書和密鑰文件的路徑正確。
保存配置文件并重啟Apache服務以應用更改。
sudo systemctl restart httpd
打開瀏覽器,訪問 https://yourdomain.com
,你應該會看到SSL證書驗證成功的消息,并且頁面能夠正常訪問。
如果你希望通過80端口重定向到443端口,可以配置端口轉發:
編輯防火墻規則:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
配置Apache重寫規則: 在虛擬主機配置塊中添加以下內容:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>
完成以上步驟后,你的CentOS Apache2服務器應該已經成功配置為支持HTTPS。