주소창에 자물쇠 뜨면 안전하다고들 하는데, 대체 브라우저는 이 사이트가 진짜 그 사이트가 맞다는 걸 어떻게 아는 건가요? 그냥 https로 접속했다고 무조건 믿는 건 아닐 거 아니에요.
제가 지금 이해한 건 이 정도예요. 서버가 인증서라는 걸 보내주고 거기에 공개키가 들어있다. 근데 그 인증서 자체가 가짜면요? 아무나 "나 네이버야" 하고 인증서 만들어서 보내면 어떻게 걸러내는 건지 모르겠어요.
그리고 자꾸 나오는 TLS 핸드셰이크라는 말도 헷갈려요. 대칭키가 어쩌고 비대칭키가 어쩌고 하던데, 왜 처음엔 공개키로 하다가 나중엔 다른 키로 바꾸는 거예요? 그냥 계속 공개키로 암호화하면 안 되나 싶기도 하고요.
실무에서 인증서 설치하다 보면 이런 것도 있잖아요.
-----BEGIN CERTIFICATE-----
MIIDxxxx... (내 서버 인증서)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIExxxx... (중간 인증서)
-----END CERTIFICATE-----
이렇게 fullchain 파일에 인증서가 두 개 이상 붙어있던데, 이 중간 인증서라는 게 위에서 말한 "믿을 수 있는지 확인하는 과정"이랑 관련이 있는 건가요? 루트 인증서는 왜 여기 안 들어가 있고요.
대충 흐름이라도 잡고 싶은데 검색하면 다들 너무 어렵게 설명해서요. 실제로 브라우저가 뭘 검증하고 뭘 믿는지 순서대로 좀 풀어서 알려주시면 감사하겠습니다.