如何在Laravel Sail环境中启用SSL
Laravel Sail 共享站点启用SSL访问操作指南
方案1:使用官方默认共享服务(优先选择)
sail share 底层基于Laravel官方维护的Expose隧道服务,新版本默认提供SSL支持,按以下操作即可:
- 先升级Laravel Sail到v1.14.0及以上版本,执行命令:
composer require laravel/sail --dev - 升级完成后直接执行共享命令:
sail share - 生成的
https://*.expose.dev格式的访问地址默认已支持SSL协议,可直接通过HTTPS访问 - 如果需要固定前缀的共享地址,可执行带参数的命令:
sail share --subdomain=自定义前缀 --region=ap
方案2:自定义域名+SSL共享配置
如果需要使用自己的专属域名共享站点,可按以下步骤配置:
1. 配置Sail容器支持HTTPS访问
- 首先在项目根目录的
docker-compose.yml文件中,给laravel.test服务新增443端口映射:
services: laravel.test: ports: - '${APP_PORT:-80}:80' - '443:443' # 新增此行
- 在项目
storage目录下新建ssl文件夹,用于存放SSL证书,执行命令生成自签名证书:docker run --rm -v "$(pwd):/app" alpine/openssl req -x509 -newkey rsa:4096 -keyout /app/storage/ssl/server.key -out /app/storage/ssl/server.crt -days 365 -nodes -subj "/CN=你的自定义域名" - 执行命令发布Sail的Nginx配置文件:
sail sail:publish - 编辑生成的
docker/nginx/conf.d/default.conf文件,新增443端口的SSL监听配置:
server { listen 443 ssl; server_name 你的自定义域名; root /var/www/html/public; ssl_certificate /var/www/html/storage/ssl/server.crt; ssl_certificate_key /var/www/html/storage/ssl/server.key; # 下方其余配置和文件内原有80端口的server配置保持一致即可 }
- 重启Sail服务生效配置:
sail restart
2. 共享配置完成的HTTPS站点
- 本地安装ngrok客户端后,直接执行命令:
ngrok http https://localhost - 生成的ngrok HTTPS链接即可通过SSL协议对外共享你的测试站点
内容的提问来源于stack exchange,提问作者Patrick Quijano
相关产品推荐
相关产品推荐

