在 Tomcat 上使用自签名证书时出现间歇性 Curl 35 错误

在 Tomcat 上使用自签名证书时出现间歇性 Curl 35 错误

我们在一系列负载均衡器后面使用自签名证书,端点使用自签名证书。

直接使用 CURL 测试端点时,我们会收到间歇性的 SSL 连接错误(代码 35)

以下是一次失败尝试的输出示例:

curl --insecure example.com/index.html

  • 正在尝试 9773...
  • TCP_NODELAY 设置
  • 连接到 example.com (10.8.49.98) 端口 9773 (#0)
  • ALPN,提供 h2
  • ALPN,提供 http/1.1
  • 成功设置证书验证位置:
  • CAfile:/etc/ssl/cert.pem CApath:无
  • TLSv1.2(OUT),TLS 握手,客户端 hello(1):
  • TLSv1.2(IN),TLS 握手,服务器 hello(2):
  • TLSv1.2(IN),TLS 握手,证书(11):
  • TLSv1.2(IN),TLS 握手,服务器密钥交换(12):
  • TLSv1.2 (IN),TLS 握手,服务器完成(14):
  • TLSv1.2(OUT),TLS 握手,客户端密钥交换(16):
  • TLSv1.2 (OUT)、TLS 更改密码、更改密码规范 (1):
  • TLSv1.2(OUT),TLS 握手,完成(20):
  • LibreSSL SSL_connect:与 example.com 连接时出现 SSL_ERROR_SYSCALL
  • 关闭连接 0 curl:(35)LibreSSL SSL_connect:与 example.com:9773 连接的 SSL_ERROR_SYSCALL

这是由于配置错误造成的吗?服务器性能问题?网络问题?

服务器是Tomcat 8。

用于创建证书的命令:

openssl req -x509 -newkey rsa:4096 -nodes -keyout private.pem -out public.crt -days 365 -subj '/CN=example.com'

相关的 Tomcat SSL 配置:

<Connector port="9773" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150"
               SSLEnabled="true"
               scheme="https"
               secure="true"
               compression="on"
               address="0.0.0.0"
               >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig
                protocols="TLSv1.2"
                >
            <Certificate
                certificateFile="/ssl/certs/public.crt"
                certificateKeyFile="/ssl/certs/private.pem"
            />
        </SSLHostConfig>
    </Connector>

相关内容