6강 / 20강
인증서 — 자물쇠 아이콘의 진짜 의미
HTTPS · 인증서 · 그리고 '이 서버가 진짜인가'
5강에서 배운 공개키 암호가 실제로 쓰이는 가장 큰 무대가 HTTPS입니다. 손님이 우리 쇼핑몰에서 카드번호를 입력할 때, 그것이 카페 와이파이를 지나 우리 서버까지 오는 동안 아무도 못 보게 하는 것 — 그 일을 HTTPS 가 합니다.
그런데 HTTPS 는 두 가지를 동시에 보장합니다. 사람들이 첫 번째만 알고 두 번째를 놓쳐요.
인증서는 '신원증명서'입니다
암호화만으로는 부족합니다. 공격자가 가짜 mallshop.kr 을 만들어 놓고 손님을 유인하면(피싱), 손님은 가짜 서버와 안전하게 암호화된 통신을 하게 돼요. 암호화는 됐지만 상대가 가짜인 거죠.
그래서 필요한 것이 인증서입니다. 믿을 수 있는 제3자(인증기관, CA)가 "이 공개키의 주인은 진짜 mallshop.kr 이 맞다"고 서명해 준 문서예요. 브라우저는 이 서명을 확인하고서야 자물쇠를 보여 줍니다.
Verify return code 가 0 (ok) 여야 브라우저가 자물쇠를 보여 줍니다.
💻 손님 노트북
브라우저 안에서 실행 (계산용)
인증서 안에는 무엇이 들어 있나
인증서는 공개하라고 있는 문서입니다. 안에 비밀은 없어요.
- 이름 — mallshop.kr
- 공개키 — 5강의 그 공개키
- 유효기간 — 언제부터 언제까지
- 발급자의 서명 — CA가 "이건 진짜다"라고 개인키로 서명한 것
비밀은 짝이 되는 개인키 쪽에 있고, 그것은 서버 밖으로 절대 나가지 않습니다. 개인키가 유출되면 인증서를 폐기하고 새로 발급받아야 해요.
인증서에 든 이름·발급자·유효기간을 봅니다.
🖥️ 내 가상 서버
브라우저 안에서 실행 (계산용)
인증서가 잘못되면 손님이 봅니다
인증서 실습실에서 여러 상황을 만들어, 손님 브라우저에 무엇이 뜨는지 봅시다.
정상 (Let's Encrypt)
🔒 자물쇠
자가서명
⚠️ "이 연결은 비공개가 아닙니다"
만료됨
⚠️ "인증서가 만료됨"
🤔 확인 문제
주소창에 자물쇠(🔒)가 보입니다. 확실히 보장되는 것은?
해설 자물쇠가 보장하는 것은 딱 둘 — 암호화와 이름 일치입니다. 피싱 사이트도 인증서를 받으면 자물쇠가 떠요. 자물쇠는 '안전'이 아니라 '도청 안 되고, 주소가 맞다'는 뜻입니다.
🤔 확인 문제
인증서(공개된 문서)와 개인키 중, 서버 밖으로 절대 나가면 안 되는 것은?
해설 인증서는 공개용 문서라 누구나 봐도 됩니다. 비밀은 개인키뿐이에요. 개인키가 새면 공격자가 우리 인증서로 우리 행세를 할 수 있어, 즉시 폐기·재발급해야 합니다.