안녕하세요? "태민"입니다.
지금 개발중인 프로젝트에서 [KAKAO MAP API]를 사용하고 있습니다.
그런데 위치권한과 API를 사용하는데에 HTTPS 환경에서만 가능하다고 합니다.
그래서 HTTPS는 무엇이고, HTTPS를 설정하는데에 필요한 SSL은 무엇인지 정리하려고 합니다.
SSL(Secure Socket Layer)
이름 그대로 알 수 있다 싶이 Secure(보안)에 관련된 프로토콜입니다.
우리가 흔히 로그인을 했을 때 아이디와 비밀번호 개인정보를 서버에 보내게 되는데 그 정보를 암호화하는 기술을 뜻합니다. 다시 말하면 아무리 서버에서 데이터를 암호화해서 보관한다 해도 패킷을 주고 받는 과정에서 암호화되지 않은 데이터를 가로챈다면 그 의미는 사라진 거겠죠.
SSL 인증서
그렇다면 이 사이트가 정말 믿을 만한 사이트인지 어떻게 알까요? 정말 암호화를 사용하는지 SSL를 사용하는지 사용자는 모르잖아요! 그 기능을 하는 것이 바로 SSL 인증서입니다. 디지털 인증서라고도 하는 SSL(보안 소켓 계층) 인증서는 브라우저 또는 사용자의 컴퓨터와 서버 또는 웹사이트 간에 암호화된 연결을 수립하는 데 사용됩니다.
인증서를 발급하는 기관(CA)들은 여러 곳이 있으나, 무조건 신뢰되는 인증서를 발급하는 건 아니니 신뢰CA목록에서 확인하면 될 듯 합니다.
제 프로젝트를 사용할 때는 "Let’s Encrypt"에서 "certbot"를 사용해 발급받았습니다. "Let's Encrypt"을 이용한다면 인증서를 주기적으로 갱신해야 하는 번거로움은 있지만, 무료로 인증서를 발급하기 때문에 토이프로젝트를 위해 인증서가 필요하시다면 추천드립니다!
HTTPS(HyperText Tranfer Protocol Secure)
먼저 HTTP와 HTTPS를 비교해볼까요?
HTTP | 서버와 클라이언트간에 자원을 주고받을 떄 사용하는 통신규약 |
HTTPS | SSL프로토콜을 이용하여 서버와 클라이언트간에 자원을 주고받을 때 사용하는 통신규약 |
정리하자면 HTTP는 브라우저와 서버 사이에서 정보를 평문으로 전송한다면, HTTPS는 보안 문제로 인해 클라이언트와 서버 사이에서의 정보를 SSL프로토콜을 이용해 암호화하여 통신한다고 생각하시면 됩니다.
간단하게 SSL과 HTTPS를 정리해보았습니다.
만약 틀린 내용이나 보충하고 싶은 내용이 있으시다면 댓글로 남겨주세요!
감사합니다.