在Debian上为Laravel配置SSL证书可以通过以下步骤完成。我们将使用Let’s Encrypt提供的免费SSL证书。以下是详细步骤:
1. 安装Certbot
Certbot是一个自动化的工具,用于获取和续订Let’s Encrypt证书。
sudo apt update sudo apt install certbot python3-certbot-nginx
2. 获取SSL证书
假设你的域名是example.com
,运行以下命令来获取证书:
sudo certbot --nginx -d example.com -d www.example.com
Certbot会自动配置Nginx以使用SSL证书,并提示你输入电子邮件地址和同意条款。
3. 配置Nginx
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; } }
4. 重启Nginx
保存配置文件后,重启Nginx以应用更改:
sudo systemctl restart nginx
5. 验证SSL配置
打开浏览器并访问https://example.com
,你应该能看到一个绿色的锁图标,表示SSL证书已正确安装。
6. 自动续订证书
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证书了。