弹性负载均衡 ELB
弹性负载均衡 ELB
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
-
API参考
- 使用前必读
- API概览
- API版本选择建议
- 如何调用API
- API(V3)
- API(V2)
- API(OpenStack API)
- 应用示例
- 权限和授权项
- 历史API
- 附录
- SDK参考
- 场景代码示例
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
如何检查SSL/TLS认证异常?
当您使用ELB的HTTPS或TLS监听器时,可能会遇到SSL/TLS认证协商失败导致的错误。由于协商过程涉及多个步骤,因此可能出现多种错误,您可以参考以下内容从客户端收到响应进行排查。
本文以java语言为例,提供常见错误排查建议。
排查项一:服务器未提供证书满足客户端校验要求
- 报错信息:
Exception in thread "main" javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
- 异常原因:ELB服务器没有提供证书或者提供的证书不符合客户端的校验要求,导致握SSL/TLS手失败。
- 解决方案:
- 请检查监听器上配置的证书是否正确。
- 请确认监听器的TLS安全策略使用的加密套件是否满足客户端要求。
排查项二:证书验证报错
- 报错信息:
Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
- 异常原因:服务器证书校验时,证书验证报错,可能是证书链不完整或证书颁发机构不受信任。
- 解决方案:将监听器的证书更换为有效的由证书颁发机构(CA)签发的证书。
排查项三:客户端收到的服务器证书主机名与请求主机名不匹配
- 报错信息:
Exception in thread "main" javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching localhost found
- 异常原因:通常发生在双向认证场景,客户端接收到服务器证书主机名与客户端请求连接的主机名不匹配,即验证localhost失败。
- 解决方案:请检查请求客户端是否携带包含localhost的证书。
排查项四:TLS安全策略的版本不匹配
- 报错信息:
Exception in thread "main" javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
- 异常原因:客户端和服务器之间无法找到共同支持的SSL/TLS协议版本或加密套件。
- 解决方案:请检查客户端和ELB监听器使用的TLS安全策略的TLS协议版本、加密套件的版本是否匹配。
父主题: 异常检查