在Linux上为Laravel项目配置HTTPS,你需要遵循以下步骤:
你可以从多个来源获取SSL证书,例如:
安装Certbot:
sudo apt update
sudo apt install certbot
运行Certbot获取证书:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
这将自动配置Nginx并生成SSL证书。
假设你已经安装并配置了Nginx,以下是一个基本的Nginx配置示例:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
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/yourdomain.com/public;
index index.php index.html index.htm;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的PHP版本调整
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
确保你的Laravel项目配置正确,特别是数据库连接和其他环境变量。
应用新的Nginx配置:
sudo systemctl restart nginx
打开浏览器并访问https://yourdomain.com,确保一切正常工作。
Let’s Encrypt证书通常每90天过期一次。你可以使用Certbot的自动续期功能:
sudo certbot renew --dry-run
如果一切正常,你可以设置一个cron作业来自动续期:
sudo crontab -e
添加以下行:
0 0,12 * * * certbot renew --post-hook "systemctl reload nginx"
通过以上步骤,你应该能够在Linux上成功为Laravel项目配置HTTPS。