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)
🔒 자물쇠
자가서명
⚠️ "이 연결은 비공개가 아닙니다"
만료됨
⚠️ "인증서가 만료됨"
인증서 실험실 — 발급 방식·만료를 바꿔 손님 브라우저의 자물쇠를 확인
불러오는 중…
🤔 확인 문제
주소창에 자물쇠(🔒)가 보입니다. 확실히 보장되는 것은?
🤔 확인 문제
인증서(공개된 문서)와 개인키 중, 서버 밖으로 절대 나가면 안 되는 것은?