Next.js本地请求Strapi时出现SSL错误求助
解决Next.js请求Strapi时的SSL版本错误
错误核心原因
这个write EPROTO 12500:error:1408F10B:SSL routines:ssl3_get_record:wrong version number错误,本质是Next.js客户端试图用HTTPS协议请求仅提供HTTP服务的本地Strapi实例。本地Strapi默认运行在http://localhost:1337,没有配置SSL证书,HTTPS请求会因协议不匹配导致SSL握手失败。
具体修复步骤
- 检查请求协议:所有调用Strapi的请求必须用
http://localhost:1337,而非https://。比如fetch请求:// 正确写法 fetch('http://localhost:1337/api/posts') // 错误写法(会触发SSL错误) // fetch('https://localhost:1337/api/posts') - 核对环境变量:如果用环境变量存储Strapi地址,确保
.env文件里的变量是HTTP开头:STRAPI_API_URL=http://localhost:1337 - 排查请求库配置:如果使用axios、ky等工具,检查是否全局强制开启HTTPS,或baseURL配置错误:
// Axios正确配置示例 const axios = require('axios'); const strapiClient = axios.create({ baseURL: 'http://localhost:1337/api', headers: { 'Content-Type': 'application/json' }, }); - 确认Strapi SSL配置:查看Strapi的
config/server.js(或server.ts),确保ssl设为false:module.exports = ({ env }) => ({ host: env('HOST', '0.0.0.0'), port: env.int('PORT', 1337), app: { keys: env.array('APP_KEYS') }, ssl: false, // 本地开发保持关闭 });
额外提示
如果后续生产环境需要HTTPS,再为Strapi配置合法SSL证书(如Let's Encrypt),同时同步更新Next.js的请求协议为HTTPS即可。
内容的提问来源于stack exchange,提问作者twentysixhugs
相关产品推荐
相关产品推荐

