오류 메시지
브라우저, Java, curl 오류
- 인증서를 갱신했더니 mTLS가 unsuitable certificate purpose로 실패할 때공인 TLS 인증서에서 클라이언트 인증 용도(clientAuth)가 빠지고 있다. 웹은 멀쩡한데 서버끼리 인증서로 서로를 확인하던 연결만 깨진다.
- NET::ERR_CERT_DATE_INVALID 원인과 해결NET::ERR_CERT_DATE_INVALID는 검증하는 쪽의 현재 시각이 인증서 유효기간 밖이라는 뜻이다. 틀린 날짜가 서버 인증서인지, 중간 인증서인지, 기기 시계인지 openssl로 가르는 법.
- ERR_SSL_VERSION_OR_CIPHER_MISMATCH와 ERR_SSL_PROTOCOL_ERROR 해결인증서를 검증하기도 전에 TLS 핸드셰이크에서 끊겼다는 뜻이다. 인증서를 새로 받기 전에 openssl s_client 출력의 마지막 줄로 원인부터 가른다.
- NET::ERR_CERT_COMMON_NAME_INVALID 원인별 해결NET::ERR_CERT_COMMON_NAME_INVALID는 접속한 도메인이 인증서의 SAN에 없다는 뜻이다. SAN 목록을 직접 보고 원인을 가려 고치는 법을 적었다.
- Java에서 PKIX path building failed가 날 때unable to find valid certification path to requested target은 JVM이 신뢰 앵커까지 경로를 못 만들었다는 뜻이다. cacerts에 넣기 전에 서버 체인 문제인지 JVM 쪽 문제인지부터 가린다.
- 크롬은 되는데 파이어폭스만 SEC_ERROR_UNKNOWN_ISSUER가 나는 이유같은 서버인데 크롬은 열리고 파이어폭스는 SEC_ERROR_UNKNOWN_ISSUER, curl은 unable to get local issuer certificate를 낸다. 클라이언트마다 트러스트 스토어와 빠진 중간 인증서를 채우는 방식이 달라서다.
- NET::ERR_CERT_AUTHORITY_INVALID가 뜰 때같은 화면 뒤에 자기서명 인증서, 사내 CA, 보안 장비, 시계 오차처럼 서로 다른 원인이 있다. 발급자(issuer)부터 보고 원인을 가르는 법과 원인별 처리를 적었다.