
이것은 다소 표준적인 질문입니다. 괜찮기를 바랍니다.
저는 직장에서 Linux 서버(일반적으로 Java 애플리케이션)에서 실행되는 클라이언트가 유효하고 서명된 인증서(브라우저에서 신뢰하는 인증서)를 신뢰하지 않는 상황을 자주 해결합니다. 우리가 일반적으로 사용하는 빠른 해결 방법은 Java cacerts 신뢰 저장소에 인증서를 추가하는 것이지만 이것이 왜 필요한지 알 수 없습니다.
내 이해에는 두 가지 가능성이 있습니다.
- 서버 측은 전체 체인(최종 엔터티 인증서 + 중간 인증서)을 올바른 순서로 보내지 않으며 클라이언트는 중간 인증서를 신뢰하지 않습니다(아마도 너무 오래되었기 때문일 수 있음).
- 클라이언트 신뢰 저장소에 신뢰 앵커로 사용할 루트 인증서가 없습니다(아마도 너무 오래되었기 때문일 수 있음).
정확합니까? 그렇다면 최종 엔터티 인증서에 대한 신뢰를 강제하는 대체 가능성은 다음과 같습니다.
- 전체 체인을 보내도록 서버 애플리케이션을 구성합니다.
- 클라이언트(예: Java)를 최신 버전으로 업그레이드합니다. 내 경우에는 일반적으로 사용할 수 있는 Java의 주요 릴리스는 소프트웨어 전제 조건에 의해 제한되지만 각 부 릴리스에는 업데이트된 신뢰 저장소가 포함되어 있습니까?
설명에 대한 어떤 생각이라도 감사하겠습니다.