linux

Linux服务器上Laravel如何配置SSL

小樊
41
2025-11-24 16:34:27
栏目: 云计算

在Linux服务器上为Laravel应用程序配置SSL证书,可以按照以下步骤进行操作。这里假设你使用的是Nginx作为Web服务器,并且已经安装了Certbot来获取Let’s Encrypt证书。

1. 安装Certbot和Nginx

如果你还没有安装Certbot和Nginx,可以使用以下命令进行安装:

sudo apt update
sudo apt install nginx certbot python3-certbot-nginx

2. 获取SSL证书

使用Certbot获取SSL证书。假设你的域名是example.com,你可以运行以下命令:

sudo certbot --nginx -d example.com -d www.example.com

Certbot会自动配置Nginx并重启服务。它会提示你输入电子邮件地址,并确认是否将重定向HTTP流量到HTTPS。

3. 配置Nginx

Certbot会自动创建一个Nginx配置文件,通常位于/etc/nginx/sites-available/example.com-le-ssl.conf。你可以检查这个文件,确保它包含了正确的SSL配置。以下是一个示例配置:

server {
    listen 80;
    server_name example.com www.example.com;
    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 / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

确保将root指令指向你的Laravel项目的根目录。

4. 启用SSL配置

Certbot会创建一个符号链接,将你的站点配置文件链接到sites-enabled目录:

sudo ln -s /etc/nginx/sites-available/example.com-le-ssl.conf /etc/nginx/sites-enabled/

5. 重启Nginx

最后,重启Nginx以应用更改:

sudo systemctl restart nginx

6. 验证配置

打开浏览器并访问https://example.com,你应该能够看到你的Laravel应用程序,并且浏览器地址栏会显示安全锁标志。

7. 自动续期证书

Certbot会自动设置一个cron任务来定期续期证书。你可以手动测试续期过程:

sudo certbot renew --dry-run

如果没有问题,证书将会自动续期。

通过以上步骤,你就可以在Linux服务器上为Laravel应用程序配置SSL证书了。

0
看了该问题的人还看了