开发者社区 问答 正文

SLB证书问题

curl通过 https访问SLB,返回错误(35),相同证书在nginx上没有问题,怎么解决?(正式从阿里申请)

展开
收起
285687029920159616 2018-09-11 21:57:44 1040 分享 版权
阿里云 AI 助理回答

遇到通过cURL使用HTTPS访问SLB(负载均衡服务)时返回错误代码35,这通常意味着SSL握手过程中出现了问题。错误35在cURL中通常表示SSL接收到意外的记录类型。如果相同的证书部署在Nginx上没有问题,那么问题可能出在SLB的配置或者证书的应用方式上。

以下是一些排查和解决此问题的建议:

  1. 检查证书和私钥是否匹配:确保上传到SLB的证书和私钥是正确且匹配的一对。有时候,误用或混淆了证书和私钥会导致SSL握手失败。

  2. 证书格式:阿里云SLB要求上传的证书为PEM格式,且包含完整的证书链。请确认你的证书文件包含了服务器证书、任何中间证书以及根证书(如果有),并且每个证书之间没有额外的空行。你可以使用如openssl工具来检查和转换证书格式。

  3. 私钥无密码保护:SLB不支持带有密码保护的私钥。请确保你的私钥没有设置密码。

  4. SLB监听配置:检查SLB的监听端口设置,确保你配置的是HTTPS监听,并且选择了正确的证书。同时,确认协议版本设置(如TLSv1.2、TLSv1.3等)与客户端(cURL)兼容。

  5. SSL协议和加密套件:SLB允许你选择支持的SSL协议版本和加密套件。如果cURL使用的协议或套件不在SLB支持的范围内,可能会导致握手失败。尝试调整这些设置以兼容cURL的请求。

  6. 测试不同的客户端:虽然你在Nginx上没有问题,但也可以尝试从其他客户端或使用不同的cURL命令参数(比如指定TLS版本)进行测试,以排除是客户端特定配置的问题。

  7. 查看SLB日志:登录阿里云控制台,查看SLB实例的访问日志和健康检查日志,这些日志可能提供关于SSL握手失败的具体原因。

  8. 技术支持协助:如果以上步骤都无法解决问题,建议联系阿里云的技术支持,他们可以提供更详细的日志分析和专业的解决方案。

记得在进行任何配置更改后,都要重新测试以验证问题是否得到解决。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答