Laravel 8 Sail 是一个用于简化 Laravel 应用程序容器化部署的工具。SSL(Secure Sockets Layer)是一种安全协议,用于在网络上加密数据传输,确保数据在客户端和服务器之间的传输是安全的。
SSL 证书主要有以下几种类型:
在生产环境中,启用 SSL 是非常重要的,特别是在处理敏感信息的网站,如电子商务网站、银行网站等。
首先,你需要获取一个 SSL 证书。你可以从 Let's Encrypt 等免费证书颁发机构获取,或者购买商业证书。
在你的 docker-compose.yml
文件中,配置 Nginx 或 Apache 以使用 SSL 证书。
示例 docker-compose.yml
文件:
version: '3'
services:
laravel:
image: laravel/sail
ports:
- "80:80"
- "443:443"
volumes:
- .:/var/www/html
environment:
- APP_ENV=local
- APP_DEBUG=true
- APP_KEY=base64:...
- APP_URL=http://localhost
- DB_CONNECTION=mysql
- DB_HOST=mysql
- DB_PORT=3306
- DB_DATABASE=sail
- DB_USERNAME=sail
- DB_PASSWORD=sail
depends_on:
- mysql
mysql:
image: mysql:8.0
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=sail
- MYSQL_USER=sail
- MYSQL_PASSWORD=sail
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
在 sail
容器中,配置 Nginx 或 Apache 以使用 SSL 证书。
示例 Nginx 配置:
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
location / {
proxy_pass http://laravel:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
示例 Apache 配置:
<VirtualHost *:80>
ServerName yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
ProxyPass / http://laravel:80/
ProxyPassReverse / http://laravel:80/
</VirtualHost>
在 .env
文件中,更新 APP_URL
为 https
协议。
APP_URL=https://yourdomain.com
使用以下命令重新部署你的 Laravel 应用程序:
sail up -d
确保 SSL 证书和密钥的路径正确,并且容器有权限访问这些文件。
确保 80 和 443 端口没有被其他服务占用。
检查 Nginx 或 Apache 的配置,确保重定向规则正确。
确保 .env
文件中的 APP_URL
正确设置为 https
协议。
通过以上步骤,你应该能够在 Laravel 8 Sail 中成功启用 SSL。
领取专属 10元无门槛券
手把手带您无忧上云