Apache 또는 Tomcat을 실행하는 Linux 기반 서버가 있고 신뢰할 수 있는 기관에서 생성된 웹 서버 인증서가 있다고 가정해 보겠습니다. 인증서는 crl의 배포 지점에 포함되어 있습니다. 질문은 다음과 같습니다. 내 서버가 SSL을 통해 다른 엔터티(서버, 사용자 등)와 통신할 때마다 유효한 CRL 또는 신뢰 체인에 의존하는 것으로 충분합니까? (기본 할당)
편집: 상황은 내 조직이 Windows 환경과 Linux 환경으로 구성되어 있다는 것입니다. 조직은 Windows 및 Linux에서 사용하는 서버 및 클라이언트 인증서에 Microsoft CA를 사용합니다. crl 파일을 호스팅하는 공개 서버가 있습니다. 대부분의 Linux 환경은 SSL을 통해 통신하는 Apache 서버와 DB 서버로 구성됩니다.
문제는 crl 서버가 오프라인 상태가 되면 Linux 환경에 어떤 일이 발생하는가입니다. Linux 서버가 인증 체인 신뢰를 통해 통신할 수 있는지 또는 사용 가능한 crl 없이 인증에 실패하는지 여부입니다. 해당 환경에 다양한 종류의 서버가 있기 때문에 이 질문은 다소 추상적이지만, 이 경우 일반적으로 무슨 일이 일어나고 있는지 알고 싶습니다.
두 번째 편집: Linux 환경에서는 OpenSSL을 사용하여 CSR을 생성하고 인증서를 설치한다는 점을 언급하고 싶었습니다.
답변1
Dmitry가 언급했듯이 클라이언트(또는 올바른 용어를 사용하면 신뢰 당사자)는 인증서가 해지되었는지 여부에 관심을 갖습니다.
웹 서버에서 신뢰 당사자는 브라우저이지만 서버가 클라이언트 인증서를 요청하면 역할이 바뀌고 신뢰 당사자는 서버가 됩니다.
Windows에서 CAPI를 사용하면 신뢰 당사자는 그렇게 하도록 구성된 경우에만 CRL을 확인합니다. 저는 Windows 10의 IE11이 기본적으로 검사를 수행한다고 생각하지만 IE9/Windows 7 시대에는 CRL 검사를 시행하기 위해 그룹 정책을 적용해야 했다고 확신합니다.
Unix/Linux 세계에서는 상황이 훨씬 더 복잡합니다. 첫째, Windows CAPI와 유사한 API가 없습니다. OpenSSL, GnuTLS, NSS 등이 있습니다. Mozilla 제품은 작성된 방식대로 NSS를 사용합니다. Chrome에서도 NSS를 사용합니다. 그러나 모든 브라우저가 이를 수행한다는 보장은 없습니다. Firefox는 CRL을 확인합니다(그러나그리 길지 않은보인다) 동시에Chrome은 다른 메커니즘을 사용합니다.m, 모두 NSS를 사용하지만.
Windows의 CAPI와 마찬가지로 응용 프로그램이 CRL을 확인하도록 선택하는지 여부는 공급업체나 관리자(귀하?) 또는 둘 다에 따라 다릅니다.