3.2. 신뢰할 수 있는 CA 인증서 지정


3.2.1. 신뢰할 수 있는 CA 인증서를 배포해야 하는 경우

3.2.1.1. 개요

애플리케이션이 SSL/TLS 핸드셰이크 중에 X.509 인증서를 수신하는 경우 애플리케이션은 발급자 CA가 신뢰할 수 있는 CA 인증서 세트 중 하나인지 확인하여 수신된 인증서를 신뢰하지 않는지 여부를 결정합니다. 수신된 X.509 인증서가 애플리케이션의 신뢰할 수 있는 CA 인증서 중 하나에 의해 유효한 서명인 경우 인증서가 신뢰할 수 있는 것으로 간주됩니다. 그렇지 않으면 거부됩니다.

3.2.1.2. 신뢰할 수 있는 CA 인증서를 지정해야 하는 애플리케이션은 무엇입니까?

HTTPS 핸드셰이크의 일부로 X.509 인증서를 수신할 가능성이 있는 모든 애플리케이션은 신뢰할 수 있는 CA 인증서 목록을 지정해야 합니다. 예를 들어 다음과 같은 유형의 애플리케이션이 포함됩니다.

  • 모든 HTTPS 클라이언트입니다.
  • 상호 인증을 지원하는 모든 HTTPS 서버 .

3.2.2. HTTPS를 위한 신뢰할 수 있는 CA 인증서 지정

3.2.2.1. CA 인증서 형식

CA 인증서는 Java 키 저장소 형식으로 제공되어야 합니다.

3.2.2.2. Apache CXF 구성 파일의 CA 인증서 배포

HTTPS 전송을 위해 신뢰할 수 있는 루트 CA를 하나 이상 배포하려면 다음 단계를 수행합니다.

  1. 배포하려는 신뢰할 수 있는 CA 인증서 컬렉션을 어셈블합니다. 신뢰할 수 있는 CA 인증서는 공용 CA 또는 개인 CA에서 가져올 수 있습니다. 자체 CA 인증서를 생성하는 방법에 대한 자세한 내용은 2.5절. “자체 인증서 생성”을 참조하십시오. 신뢰할 수 있는 CA 인증서는 Java 키 저장소 유틸리티와 호환되는 모든 형식(예: PEM 형식)일 수 있습니다. 필요한 것은 모두 인증서 자체입니다. 개인 키와 암호가 필요하지 않습니다.
  2. PEM 형식의 CA 인증서 cacert.pem 이 제공된 경우 다음 명령을 입력하여 JKS 트러스트 저장소(또는 새 신뢰 저장소를 생성)에 인증서를 추가할 수 있습니다.

    keytool -import -file cacert.pem -alias CAAlias -keystore truststore.jks -storepass StorePass

    여기서 CAAliaskeytool 유틸리티를 사용하여 이 특정 CA 인증서에 액세스할 수 있는 편리한 태그입니다. truststore.jks 파일은 CA 인증서가 포함된 키 저장소 파일입니다. 이 파일이 없으면 keytool 유틸리티에서 키를 생성합니다. StorePass 암호는 키 저장소 파일 truststore.jks 에 대한 액세스를 제공합니다.

  3. 필요에 따라 2단계를 반복하여 모든 CA 인증서를 truststore 파일 truststore.jks 에 추가합니다.
  4. 관련 XML 구성 파일을 편집하여 truststore 파일의 위치를 지정합니다. 관련 HTTPS 포트 구성에 sec:trustManagers 요소를 포함해야 합니다.

    예를 들어 다음과 같이 클라이언트 포트를 구성할 수 있습니다.

    <!-- Client port configuration -->
    <http:conduit id="{Namespace}PortName.http-conduit">
      <http:tlsClientParameters>
        ...
        <sec:trustManagers>
          <sec:keyStore type="JKS"
                        password="StorePass"
                        file="certs/truststore.jks"/>
        </sec:trustManagers>
        ...
      </http:tlsClientParameters>
    </http:conduit>

    여기서 truststore에서 JKS 키 저장소 구현을 사용하고 StorePasstruststore.jks 키 저장소에 액세스하는 데 필요한 암호입니다.

    다음과 같이 서버 포트를 구성합니다.

    <!-- Server port configuration -->
    <http:destination id="{Namespace}PortName.http-destination">
      <http:tlsServerParameters secureSocketProtocol="TLSv1">
        ...
        <sec:trustManagers>
          <sec:keyStore type="JKS"
                        password="StorePass"
                        file="certs/truststore.jks"/>
        </sec:trustManagers>
        ...
      </http:tlsServerParameters>
    </http:destination>
    중요
    주의

    신뢰 저장소를 포함하는 디렉터리(예: X509Deploy/truststores/)는 보안 디렉터리여야 합니다(즉, 관리자만 쓰기 가능).

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.