以下是在Ubuntu上為PHP配置SSL證書的教程:
確保系統已更新,安裝Nginx或Apache以及PHP-FPM,安裝時需包含SSL模塊。
使用Certbot獲取Let’s Encrypt免費證書。以Nginx為例,安裝Certbot相關包后,運行sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
,按提示操作即可。
編輯PHP-FPM配置文件,通常位于/etc/php/版本號/fpm/pool.d/www.conf
,確保listen
參數正確,如使用Unix套接字可設為listen = /run/php/php版本號-fpm.sock
,或使用TCP端口如listen = 127.0.0.1:9000
。
以Nginx為例,編輯網站配置文件,一般在/etc/nginx/sites-available/
目錄下。確保有如下配置:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
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;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
root /var/www/html;
index index.php index.html index.htm;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php版本號-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
之后重啟Nginx和PHP-FPM服務。
打開瀏覽器訪問網站,查看是否有安全鎖圖標,也可使用sudo openssl s_client -connect yourdomain.com:443
命令檢查SSL配置。