개발자가 HTTPS로 이전할 때 직면하는 두 가지 장애물은 개념과 용어입니다. 이 가이드에서는 두 가지 모두에 대한 간략한 개요를 제공합니다.
요약
- 공개 키/비공개 키를 사용하여 브라우저와 서버 간의 메시지에 서명하고 메시지를 복호화했습니다.
- 인증 기관 (CA)은 공개 키와 공개 DNS 이름 (예: 'www.foobar.com') 간의 매핑을 보증하는 조직입니다.
- 인증서 서명 요청 (CSR)은 공개 키와 키를 소유한 항목에 관한 일부 메타데이터를 번들로 묶은 데이터 형식입니다.
공개 키와 비공개 키 쌍이란 무엇인가요?
공개/비공개 키 쌍은 암호화 및 복호화 키로 사용되며 특별한 수학적 관계를 공유하는 매우 큰 숫자 쌍입니다. 키 쌍의 일반적인 시스템은 RSA 암호화 시스템입니다. 공개 키는 메시지를 암호화하는 데 사용되며, 메시지는 해당하는 비공개 키를 사용하여야만 복호화할 수 있습니다. 웹 서버는 공개 키를 전 세계에 광고하고 클라이언트 (예: 웹브라우저)는 이를 사용하여 서버에 보안 채널을 부트스트랩합니다.
인증 기관이란 무엇인가요?
인증 기관 (CA)은 공개 키와 공개 DNS 이름 (예: 'www.foobar.com') 간의 매핑을 보증하는 조직입니다. 예를 들어 특정 공개 키가 www.foobar.com의 실제 공개 키인지 클라이언트가 어떻게 알 수 있나요? 사전에는 알 수 있는 방법이 없습니다. CA는 자체 비공개 키를 사용하여 웹사이트의 공개 키에 암호화 서명하여 특정 키가 특정 사이트의 실제 키라고 보증합니다. 이 서명은 계산적으로 위조할 수 없습니다. 브라우저 (및 기타 클라이언트)는 잘 알려진 CA가 소유한 공개 키가 포함된 신뢰 앵커 저장소를 유지 관리하며, 이러한 공개 키를 사용하여 CA의 서명을 암호화 방식으로 확인합니다.
X.509 인증서는 공개 키와 키를 소유한 항목에 관한 일부 메타데이터를 번들로 묶은 데이터 형식입니다. 웹의 경우 키의 소유자는 사이트 운영자이고 중요한 메타데이터는 웹 서버의 DNS 이름입니다. 클라이언트가 HTTPS 웹 서버에 연결하면 웹 서버는 클라이언트가 확인할 수 있도록 인증서를 제공합니다. 클라이언트는 인증서가 만료되지 않았는지, DNS 이름이 클라이언트가 연결하려는 서버의 이름과 일치하는지, 알려진 신뢰 앵커 CA가 인증서에 서명했는지 확인합니다. 대부분의 경우 CA는 웹 서버 인증서에 직접 서명하지 않습니다. 일반적으로 신뢰 앵커를 중간 signer 또는 signers에 연결하고 마지막으로 웹 서버의 자체 인증서 (종단 개체)에 연결하는 인증서 체인이 있습니다.
인증서 서명 요청이란 무엇인가요?
인증서 서명 요청 (CSR)은 인증서와 마찬가지로 공개 키를 키를 소유한 항목에 관한 일부 메타데이터와 함께 번들로 묶는 데이터 형식입니다. 하지만 클라이언트는 CSR을 해석하지 않습니다. CA에서 해석합니다. CA가 웹 서버의 공개 키를 보증하도록 하려면 CA에 CSR을 전송합니다. CA는 CSR의 정보를 검증하고 이를 사용하여 인증서를 생성합니다. 그러면 CA에서 최종 인증서를 전송하고 개발자는 웹 서버에 해당 인증서 (또는 인증서 체인)와 비공개 키를 설치합니다.