debian

如何在Debian上为Laravel配置SSL证书

小樊
40
2025-03-25 05:38:12
栏目: 云计算

在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证书了。

0
看了该问题的人还看了