NodeJS调用AWS Lambda时Axios出现SSL握手失败(Alert 40)问题
问题场景
基于Serverless框架开发Web应用,部署了AWS Lambda作为登录验证服务,其他Lambda通过Axios调用该验证服务时出现SSL握手失败错误:
AxiosError: write EPROTO 18440:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:c:\ws\deps\openssl\openssl\ssl\record\rec_layer_s3.c:1546:SSL alert number 40
Postman及本地Axios调用正常,尝试自定义HTTPS Agent配置后问题仍未解决。
解决方案
1. 检查并升级Lambda运行时的Node.js版本
AWS Lambda不同Node.js版本自带的OpenSSL库版本差异较大,旧版本(如Node.js 14及以下)可能不支持API Gateway要求的TLS cipher套件:
- 登录AWS控制台,将调用方Lambda的运行时升级至Node.js 16.x或更高版本
- 可在Lambda代码中打印环境信息,对比本地与云端差异:
console.log(`Node版本: ${process.version}, OpenSSL版本: ${process.versions.openssl}`);
2. 修正Axios的HTTPS Agent配置
确保自定义Agent正确传入Axios实例,同时放宽cipher兼容范围:
const https = require('https'); const axios = require('axios'); // 构造兼容更多场景的HTTPS Agent const agent = new https.Agent({ secureProtocol: 'TLSv1_2_method', ciphers: 'ALL:@SECLEVEL=1', // 降低安全级别以兼容更多cipher套件(临时排查用,生产需调整) // rejectUnauthorized: false, // 仅临时排查证书问题,生产环境请勿开启 }); // 创建Axios实例时必须传入agent const http = axios.create({ baseURL: "https://**********.execute-api.us-east-1.amazonaws.com/", httpsAgent: agent }); // 仅传入必要的请求头,避免Lambda event.headers中的内部头干扰 const responseStatus = await http.get("dev/verify-user-login", { headers: { Authorization: event.headers.Authorization } });
3. 排查API Gateway及网络配置
- 若使用自定义域名,检查API Gateway自定义域名的TLS配置,确保开启TLS 1.2(默认execute-api域名无需额外配置)
- 若调用方Lambda部署在VPC内,需确保VPC配置了NAT网关/互联网网关,允许Lambda访问公网API Gateway端点
4. 改用AWS SDK直接调用Lambda(推荐)
避免跨服务HTTPS调用的SSL问题,直接用AWS SDK调用验证Lambda:
const AWS = require('aws-sdk'); const lambda = new AWS.Lambda({ region: 'us-east-1' }); async function callVerifyLambda(headers) { const params = { FunctionName: 'your-verify-user-login-lambda-function-name', InvocationType: 'RequestResponse', Payload: JSON.stringify({ headers }) }; const response = await lambda.invoke(params).promise(); return JSON.parse(response.Payload); } // 在handler中调用 const verifyResult = await callVerifyLambda({ Authorization: event.headers.Authorization });
内容的提问来源于stack exchange,提问作者Jonathan Urrego Zea
相关产品推荐
相关产品推荐

