温馨提示×

laravel在centos上如何部署HTTPS

小樊
46
2025-10-13 02:48:47
栏目: 智能运维

在CentOS上部署Laravel应用程序的HTTPS涉及几个步骤,包括获取SSL证书、配置Web服务器(如Apache或Nginx)以及更新Laravel配置。以下是使用Apache和Nginx的详细步骤:

使用Apache部署HTTPS

  1. 安装Certbot: Certbot是一个自动化的工具,用于获取和续订Let’s Encrypt证书。

    sudo yum install epel-release
    sudo yum install certbot python2-certbot-apache
    
  2. 获取SSL证书: 运行Certbot来获取证书。

    sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
    

    按照提示完成证书的获取和配置。

  3. 配置Apache: Certbot会自动修改Apache配置文件以启用HTTPS。确保你的虚拟主机配置如下:

    <VirtualHost *:443>
        ServerName yourdomain.com
        ServerAlias www.yourdomain.com
        DocumentRoot /var/www/html/your-laravel-app/public
    
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
    
        <Directory /var/www/html/your-laravel-app/public>
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    
  4. 重启Apache

    sudo systemctl restart httpd
    
  5. 更新Laravel配置: 确保Laravel知道你正在使用HTTPS。编辑.env文件:

    FORCE_SSL=true
    

使用Nginx部署HTTPS

  1. 安装Certbot

    sudo yum install epel-release
    sudo yum install certbot python2-certbot-nginx
    
  2. 获取SSL证书: 运行Certbot来获取证书。

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

    按照提示完成证书的获取和配置。

  3. 配置Nginx: Certbot会自动修改Nginx配置文件以启用HTTPS。确保你的服务器块配置如下:

    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
        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/html/your-laravel-app/public;
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    
  4. 重启Nginx

    sudo systemctl restart nginx
    
  5. 更新Laravel配置: 确保Laravel知道你正在使用HTTPS。编辑.env文件:

    FORCE_SSL=true
    

注意事项

  • 防火墙配置:确保你的防火墙允许HTTP(80)和HTTPS(443)流量。

    sudo firewall-cmd --permanent --zone=public --add-service=http
    sudo firewall-cmd --permanent --zone=public --add-service=https
    sudo firewall-cmd --reload
    
  • SELinux配置:如果启用了SELinux,可能需要调整相关策略以允许Web服务器访问必要的文件和目录。

通过以上步骤,你应该能够在CentOS上成功部署Laravel应用程序的HTTPS。

0