우리는 다양한 로드 밸런서 뒤에서 자체 서명된 인증서를 사용하고 있으며 엔드포인트는 자체 서명된 인증서를 사용합니다.
CURL을 사용하여 엔드포인트를 직접 테스트할 때 간헐적으로 SSL 연결 오류가 발생합니다(코드 35).
다음은 실패한 시도의 출력 예입니다.
컬 --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 핸드셰이크, 클라이언트 안녕하세요(1):
- TLSv1.2(IN), TLS 핸드셰이크, Server 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 종료 중 컬: (35) LibreSSL SSL_connect: example.com:9773에 연결된 SSL_ERROR_SYSCALL
이는 잘못된 구성으로 인한 것입니까? 서버 성능 문제? 회로망?
서버는 톰캣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>