[ssl] 자체 서명 된 CA와 자체 서명 된 인증서의 차이점

CA 키와 인증서의 차이점이 명확하지 않습니다. CA 키는 단순히 인증서가 아닙니까? 예를 들어 설명하겠습니다.

클라이언트와 서버가 있습니다. 내 서버에 대한 연결을 확인하고 다른 사람에 대한 신뢰를 설정하지 않기 때문에 실제 CA로 서명하는 것은 신경 쓰지 않습니다.

옵션 1 : 자체 서명 된 CA ( ssCA )를 생성하고이를 사용하여 인증서에 서명합니다 ( C ). 그런 다음 클라이언트의 루트 키 저장소에 ssCA 를 설치 하고 인증서 C 를 사용하도록 서버를 설정합니다 .

옵션 2 : 자체 서명 된 인증서 ( SSC )를 생성합니다 . 내 클라이언트의 루트 키 저장소에 SSC 를 설치합니다 . 인증서 SSC 를 사용하도록 내 서버를 설정합니다 .

두 번째 옵션은 훨씬 간단한 프로세스처럼 보입니다. 그래도 작동할까요?



답변

두 옵션 모두 유효하며 옵션 2가 더 간단합니다.

여러 인증서가 필요한 경우 옵션 1 (자체 CA 설정)이 바람직합니다. 회사에서는 자체 CA를 설정하고 모든 클라이언트의 루트 키 저장소에 해당 CA의 인증서를 설치할 수 있습니다. 그런 다음 해당 클라이언트는 CA에서 서명 한 모든 인증서를 수락합니다.

옵션 2 (CA없이 인증서 자체 서명)가 더 쉽습니다. 단일 인증서 만 필요한 경우 이것으로 충분합니다. 클라이언트의 키 저장소에 설치하면 완료됩니다. 그러나 두 번째 인증서가 필요한 경우 모든 클라이언트에 다시 설치해야합니다.

다음은 추가 정보가있는 링크입니다. 인증 기관 및 자체 서명 된 SSL 인증서 만들기


답변

첫째, 키와 인증서 ( “CA 키”관련)의 구분에 대해 공개 키 인증서 (일반적으로 X.509)에 대해 이야기 할 때 사용되는 세 부분이 있습니다. 공개 키, 개인 키 및 인증서입니다. 공개 키와 개인 키는 쌍을 이룹니다. 개인 키로 서명 및 암호 해독이 가능하며, 공개 키로 확인 (서명) 및 암호화 할 수 있습니다. 공개 키는 배포 용이고 개인 키는 비공개로 유지됩니다.

공개 키 인증서는 공개 키와 다양한 정보 (대부분 개인 키를 제어하는 ​​키 쌍 ​​소유자의 신원에 관한 것)의 조합으로,이 조합은 발행자의 개인 키를 사용하여 서명됩니다. 증명서. X.509 인증서에는 주체 고유 이름과 발급자 고유 이름이 있습니다. 발급자 이름은 인증서를 발급하는 기관의 인증서 주체 이름입니다. 자체 서명 된 인증서는 발급자와 주체가 동일한 특수한 경우입니다. 인증서의 내용에 서명 (즉, 인증서 발급)함으로써 발급자는 해당 내용, 특히 키, ID (주체) 및 다양한 속성 간의 바인딩 (사용 의도 또는 범위를 나타낼 수 있음)을 주장합니다. 증명서).

뿐만 아니라 PKIX 사양은 인증서를 CA 인증서로 사용할 수 있는지, 즉 다른 인증서의 발급자로 사용할 수 있는지 여부를 나타내는 확장 (주어진 인증서의 일부)을 정의합니다.

이를 통해 최종 엔터티 인증서 (사용자 또는 서버에 대해 확인하려는 인증서)와 신뢰하는 CA 인증서 사이에 인증서 체인을 구축합니다. 서비스의 최종 엔터티 인증서와 신뢰할 수있는 CA 인증서 사이에 중간 CA 인증서 (다른 CA 인증서에서 발급)가있을 수 있습니다. 맨 위에 루트 CA (자체 서명 된 CA 인증서)가 꼭 필요한 것은 아니지만 종종 그런 경우입니다 (원하는 경우 직접 중간 CA 인증서를 신뢰하도록 선택할 수 있습니다).

사용 사례의 경우 특정 서비스에 대해 자체 서명 된 인증서를 생성하는 경우 CA 플래그 (기본 제약 확장)가 있는지 여부는 실제로 중요하지 않습니다. 다른 인증서를 발급하려면 CA 인증서가 필요합니다 (자신의 PKI를 구축하려는 경우). 이 서비스에 대해 생성 한 인증서가 CA 인증서 인 경우 아무런 해를 끼치 지 않아야합니다. 더 중요한 것은이 특정 서버에 대해 해당 인증서를 신뢰하도록 클라이언트를 구성 할 수있는 방법입니다 (예를 들어 브라우저는 명시적인 예외를 매우 쉽게 만들 수 있도록해야합니다). 구성 메커니즘이 특정 예외를 사용하지 않고 PKI 모델을 따르는 경우 (하나의 인증서 만 사용하여) 체인을 구축 할 필요가 없기 때문에 인증서를 신뢰 앵커의 일부로 직접 가져올 수 있어야합니다. 당신의 클라이언트, 그것이


답변

openssl x509 -noout -text -in $YOUR_CERT파일 내용 간의 차이점을 확인할 수 있습니다 .

자체 서명 된 CA에서 다음을 볼 수 있습니다.

    X509v3 extensions:
        X509v3 Basic Constraints:
            CA:TRUE, pathlen:0

자체 서명 된 인증서에는 다음이 포함됩니다.

    X509v3 extensions:
        X509v3 Basic Constraints:
            CA:FALSE


답변

항상 루트 CA가 있어야합니다. CA에는 하위 수준 인증서에 서명하는 데 사용할 수있는 키와 클라이언트의 허용 된 루트 인증서에 포함될 수있는 루트 인증서가 있으며 하위 인증서를 확인하여 확인하는 데 사용됩니다. 유효합니다. 자체 서명은 귀하가 자신의 CA임을 의미합니다. 자체 서명 된 인증서를 만들 때마다 CA를 만든 다음 해당 CA로 사이트 인증서에 서명합니다.


답변