在Debian上為Laravel配置SSL證書可以通過以下步驟完成。我們將使用Let’s Encrypt提供的免費SSL證書。以下是詳細步驟:
Certbot是一個自動化的工具,用于獲取和續訂Let’s Encrypt證書。
sudo apt update
sudo apt install certbot python3-certbot-nginx
假設你的域名是example.com,運行以下命令來獲取證書:
sudo certbot --nginx -d example.com -d www.example.com
Certbot會自動配置Nginx以使用SSL證書,并提示你輸入電子郵件地址和同意條款。
Certbot會自動修改你的Nginx配置文件,通常位于/etc/nginx/sites-available/example.com。確保配置文件中有以下內容:
server {
listen 80;
server_name example.com www.example.com;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.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:/var/run/php/php7.4-fpm.sock; # 根據你的PHP版本調整
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
保存配置文件后,重啟Nginx以應用更改:
sudo systemctl restart nginx
打開瀏覽器并訪問https://example.com,你應該能看到一個綠色的鎖圖標,表示SSL證書已正確安裝。
Let’s Encrypt證書每90天需要續訂一次。Certbot會自動處理續訂過程,但你可以手動測試續訂:
sudo certbot renew --dry-run
如果沒有錯誤,你可以設置一個cron任務來自動續訂證書:
sudo crontab -e
添加以下行:
0 0,12 * * * certbot renew --post-hook "systemctl reload nginx"
這會在每天午夜和中午檢查并續訂證書,如果證書被更新,會自動重新加載Nginx。
通過以上步驟,你就可以在Debian上為Laravel項目配置SSL證書了。