在CentOS系统中为Laravel应用配置SSL证书,通常需要以下几个步骤:
获取SSL证书 首先,你需要获取一个SSL证书。你可以从证书颁发机构(CA)购买一个证书,或者使用Let’s Encrypt免费获取一个证书。
安装Certbot Certbot是一个自动化的工具,用于获取和配置Let’s Encrypt SSL证书。在CentOS上安装Certbot,可以使用以下命令:
sudo yum install epel-release sudo yum install certbot python2-certbot-apache sudo certbot --apache -d yourdomain.com -d www.yourdomain.com 在提示时,你需要提供电子邮件地址、同意服务条款并设置证书目录。
/etc/httpd/conf.d/yourdomain.com.conf。确保配置文件中的<VirtualHost>部分包含以下内容:<VirtualHost *:443> ServerName yourdomain.com ServerAlias www.yourdomain.com DocumentRoot /var/www/yourdomain.com/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 </VirtualHost> sudo systemctl restart httpd .env文件中的APP_URL设置为你的域名,例如:APP_URL=https://yourdomain.com php artisan make:middleware ForceHttps 在新创建的app/Http/Middleware/ForceHttps.php文件中,修改handle方法:
public function handle($request, Closure $next) { if (!$request->secure() && env('APP_ENV') !== 'local') { return redirect()->secure($request->getRequestUri()); } return $next($request); } 然后,在app/Http/Kernel.php文件中将新创建的中间件添加到全局中间件数组中:
protected $middleware = [ // ... \App\Http\Middleware\ForceHttps::class, ]; 现在,你的Laravel应用应该已经成功配置了SSL证书,并且所有流量都会通过HTTPS传输。