在CentOS上為Apache添加SSL支持,您需要遵循以下步驟:
安裝EPEL和mod_ssl包: 首先,您需要安裝EPEL(Extra Packages for Enterprise Linux)存儲庫和mod_ssl模塊。運行以下命令來安裝它們:
sudo yum install epel-release
sudo yum install mod_ssl
生成SSL證書和私鑰: 您需要一個SSL證書和私鑰來啟用HTTPS。您可以使用自簽名證書進行測試,但在生產環境中,您應該使用由受信任的證書頒發機構(CA)簽發的證書。要生成自簽名證書,請運行以下命令:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/apache-selfsigned.key -out /etc/pki/tls/certs/apache-selfsigned.crt
按照提示輸入您的信息。這將生成一個名為apache-selfsigned.key
的私鑰文件和一個名為apache-selfsigned.crt
的證書文件。
創建SSL配置文件:
在/etc/httpd/conf.d
目錄下創建一個名為ssl.conf
的新文件,并將以下內容粘貼到文件中:
<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/pki/tls/private/apache-selfsigned.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
替換為您的域名,并將DocumentRoot
指令設置為您的網站文檔根目錄。如果您使用的是自簽名證書,您可能需要將SSLCertificateChainFile
指令指向一個包含CA證書的ca-bundle.crt
文件。您可以從證書頒發機構(CA)獲取此文件,或者使用以下命令生成一個包含常見CA證書的ca-bundle.crt
文件:
sudo wget -O /etc/pki/tls/certs/ca-bundle.crt https://curl.se/ca/cacert.pem
創建HTTP重定向配置文件:
為了確保所有流量都通過HTTPS進行傳輸,您需要創建一個HTTP重定向配置文件。在/etc/httpd/conf.d
目錄下創建一個名為http-to-https.conf
的新文件,并將以下內容粘貼到文件中:
<VirtualHost *:80>
ServerName yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
請將yourdomain.com
替換為您的域名。
啟用SSL模塊和配置文件:
要啟用SSL模塊并加載剛剛創建的配置文件,請在/etc/httpd/conf/httpd.conf
文件中添加以下行:
LoadModule ssl_module modules/mod_ssl.so
IncludeOptional conf.d/*.conf
重啟Apache服務: 最后,重啟Apache服務以應用更改:
sudo systemctl restart httpd
現在,您的CentOS上的Apache應該已經啟用了SSL支持。請注意,由于我們使用的是自簽名證書,瀏覽器可能會警告您證書不受信任。在測試環境中,您可以選擇繼續訪問網站。但在生產環境中,請務必使用由受信任的CA簽發的證書。