本地部署NextJS+Strapi+Auth0遇ERR_SSL_PROTOCOL_ERROR求助
解决方案:Strapi + Auth0 登录后 ERR_SSL_PROTOCOL_ERROR 问题
核心问题分析
错误根源在于两个关键配置失误:Strapi的url字段类型错误,以及Caddy反向代理未明确启用HTTPS,导致Auth0回调时协议不匹配触发SSL错误。
1. 修正Strapi server.ts配置的类型错误
你当前的url字段误用了env.int()(用于获取整数),但URL是字符串类型,这会导致Strapi生成错误的回调地址。修改如下:
export default ({ env }) => ({ host: env('HOST', '0.0.0.0'), port: env.int('PORT', 1337), // 替换错误的env.int为字符串类型的env调用 url: env('URL', 'https://localhost:8080'), admin: { url: '/', serveAdminPanel: false, auth: { secret: env('ADMIN_JWT_SECRET'), } }, app: { keys: env.array('APP_KEYS'), }, webhooks: { populateRelations: env.bool('WEBHOOKS_POPULATE_RELATIONS', false), }, }); // 建议移除该全局证书禁用设置,后续若遇证书信任问题再针对性处理 // process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
2. 调整Caddy反向代理命令以启用HTTPS
Auth0要求回调地址必须为HTTPS,因此需要让Caddy在8080端口明确提供HTTPS服务:
caddy reverse-proxy --from https://localhost:8080 --to http://localhost:1337
执行该命令后,Caddy会自动为localhost生成自签名SSL证书,解决协议不匹配问题。
3. 验证Auth0控制台的回调URL配置
确保Auth0控制台的Allowed Callback URLs包含以下地址:
https://localhost:8080/api/connect/auth0/callback
同时确认Strapi的Auth0插件配置中,Callback URL与该地址完全一致,Client ID、Client Secret、Domain信息也准确无误。
4. 重启服务并测试
- 重启Strapi服务
- 重启Caddy代理
- 访问
https://localhost:8080/api/connect/auth0(注意使用HTTPS),提交登录凭证后即可正常完成回调流程。
内容的提问来源于stack exchange,提问作者BigDevJames
相关产品推荐
相关产品推荐

