要在Ubuntu中為PHP-FPM啟用HTTPS,您需要先獲取SSL證書,然后配置Web服務器(例如Nginx或Apache)以便使用該證書并與PHP-FPM進行通信。以下是在Ubuntu中使用Nginx和Let’s Encrypt SSL證書為PHP-FPM啟用HTTPS的步驟:
sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
將yourdomain.com
替換為您的實際域名。Certbot將自動為您的域名獲取Let’s Encrypt SSL證書,并配置Nginx以使用該證書。
在Certbot提示時,選擇是否將HTTP請求重定向到HTTPS。建議選擇“是”。
Certbot將自動修改Nginx配置文件(通常位于/etc/nginx/sites-available/yourdomain.com-le-ssl.conf
),以啟用HTTPS。確保以下部分已正確配置:
server {
...
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根據您的PHP版本更改此行
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
...
}
sudo systemctl restart nginx
現在,您的PHP-FPM應用程序應該已通過HTTPS提供服務。請注意,Let’s Encrypt證書有效期為90天,因此您需要使用certbot renew
命令定期更新證書。Certbot還提供了一個cron作業或systemd定時器,可以自動執行此操作。