使用Node.js连接MongoDB Atlas失败,报错ERR_SSL_TLSV1_ALERT_INTERNAL_ERROR
MongoDB Atlas连接时出现SSL内部错误的解决求助
我在使用MongoDB Atlas搭建项目时,连接数据库持续抛出以下SSL相关错误:
return new error_1.MongoNetworkError(error_1.MongoError.buildErrorMessage(err), { cause: err }); ^ MongoNetworkError: 640B0000:error:0A000438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error:c:\ws\deps\openssl\openssl\ssl\record\rec_layer_s3.c:1586:SSL alert number 80 at connectionFailureError (C:\Users\ACER USER\Desktop\work\code\FRED_APP_AI_SERVER\node_modules\mongoose\node_modules\mongodb\lib\cmap\connect.js:379:20) at TLSSocket.<anonymous> (C:\Users\ACER USER\Desktop\work\code\FRED_APP_AI_SERVER\node_modules\mongoose\node_modules\mongodb\lib\cmap\connect.js:285:22) at Object.onceWrapper (node:events:629:26) at TLSSocket.emit (node:events:514:28) at emitErrorNT (node:internal/streams/destroy:151:8) at emitErrorCloseNT (node:internal/streams/destroy:116:3) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { connectionGeneration: 6, [Symbol(errorLabels)]: Set(1) { 'ResetPool' }, [cause]: [Error: 640B0000:error:0A000438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error:c:\ws\deps\openssl\openssl\ssl\record\rec_layer_s3.c:1586:SSL alert number 80 ] { library: 'SSL routines', reason: 'tlsv1 alert internal error', code: 'ERR_SSL_TLSV1_ALERT_INTERNAL_ERROR' } }
我已经试过以下方法,但问题依然存在:
- 将当前设备IP地址添加到MongoDB Atlas的IP白名单
- 反复核对MongoDB连接URI,确认没有拼写错误
可能的解决方向
- 检查Node.js和驱动版本兼容性:MongoDB Atlas要求驱动支持TLS 1.2+,若Node.js版本过低(如v12及以下)或mongoose/mongodb驱动版本老旧,易触发SSL握手失败。建议升级Node.js到v16+,同时更新驱动:
npm update mongoose mongodb - 强制指定TLS版本:在连接URI末尾添加参数,明确指定TLS 1.2版本:
?tls=true&tlsVersion=TLS1_2 - 排查本地网络/证书问题:Windows环境下可能存在系统根证书异常,可尝试重置本地证书;或暂时关闭防火墙、代理(仅测试用),排除网络拦截干扰
- 切换网络环境测试:若当前处于公司内网、公共WiFi,可能存在SSL流量拦截,换用手机热点连接尝试
- 重新生成数据库凭证:若用户密码含特殊字符,可能导致URI解析异常,重新创建数据库用户,用简单密码测试连接
内容的提问来源于stack exchange,提问作者Uwa Gideon
相关产品推荐
相关产品推荐

