Skip to content

Commit

Permalink
feat: replace png to webp
Browse files Browse the repository at this point in the history
  • Loading branch information
dotoleeoak committed Oct 22, 2023
1 parent 70dd28a commit 0ccabbc
Show file tree
Hide file tree
Showing 9 changed files with 4 additions and 4 deletions.
Binary file removed content/post/certbot-docker/check-cert.png
Binary file not shown.
Binary file added content/post/certbot-docker/check-cert.webp
Binary file not shown.
8 changes: 4 additions & 4 deletions content/post/certbot-docker/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ HTTPS를 알려면 HTTP를 우선 알아야해요. HTTP는 OSI 7계층 중 가

하지만 HTTP만으로는 암호화가 되지 않은 상태로 데이터가 전송되어서 여러 보안상의 취약점이 발생할 수 있어요. 예를 들어 사용자가 로그인을 위해 아이디와 비밀번호를 입력해서 서버에 전송할 때, 이 데이터가 암호화되지 않고 서버에 전송되면 중간에서 해커가 이를 가로채서 읽을 수 있죠. 이런 문제를 해결하기 위해 나온 것이 HTTPS에요. HTTPS는 HTTP와 달리 TCP와 application layer 사이에 위치하는 SSL/TLS를 사용해서 데이터를 암호화하고 전송해요.

![OSI 7 계층](osi-7-layer.png)
![OSI 7 계층](osi-7-layer.webp)

SSL과 TLS 두 용어가 혼용되어서 쓰이곤 하는데, 사실 SSL은 구버전을 의미하고 TLS는 SSL의 개선 버전을 의미해요. 하지만 SSL과 TLS는 서로 호환되기 때문에 SSL과 TLS를 혼용해서 쓰는 경우가 많아요. 둘이 같은 것이라고 생각하셔도 좋아요.

TLS는 Transport Layer Security의 약자로, 이름 그대로 transport layer에서 동작하는 암호화 protocol이에요.

![TLS](tls.png)
![TLS](tls.webp)

TLS는 대칭키와 비대칭키를 사용해요. 대칭키는 암호화와 복호화에 같은 키를 사용하는 방식이고, 비대칭키는 암호화와 복호화에 다른 키를 사용하는 방식이에요. 비대칭키를 사용하면 복호화키는 private key로 서버에 보관하고, 암호화키는 모든 사람에게 공개하는 public key로 사용해요. 이렇게 하면 암호화된 데이터를 복호화할 수 있는 사람은 private key를 가진 서버만 되기 때문에 보안이 높아져요. 하지만 비대칭키는 대칭키보다 암호화 속도가 느리기 때문에, TLS는 대칭키와 비대칭키를 함께 사용해요. 대칭키는 암호화 속도가 빠르기 때문에 데이터를 암호화할 때 대칭키를 사용하고, 대칭키를 공유할 때 비대칭키를 사용해요.

Expand All @@ -38,7 +38,7 @@ HTTPS, SSL, TLS에 대한 내용은 아래 영상에 잘 설명되어 있으니

{{< callout emoji="🧐" text="<b>CA를 쓰는 이유</b><br>아래 인증서 사진을 보면 'SHA-256 지문'이라는 부분이 있죠. 이는 인증서에서 발급해준 것으로, 브라우저에서 처음 웹사이트에 접속하면 이 인증서가 유효한지 확인해줘요. CA에서 발급받은 TLS 인증서를 쓰지 않으면 브라우저는 위험한 사이트로 인식하죠." >}}

{{< figure src="skkuding-cert.png" caption="스꾸딩의 TLS 인증서는 AWS에서 발급받았어요. " alt="스꾸딩 인증서" >}}
{{< figure src="skkuding-cert.webp" caption="스꾸딩의 TLS 인증서는 AWS에서 발급받았어요. " alt="스꾸딩 인증서" >}}

Let's Encrypt가 바로 이 CA 중 하나예요. 보통의 CA와 달리 Let's Encrypt는 무료로 TLS 인증서를 발급해줘요. 보안상의 문제도 없고요! Certbot은 Let's Encrypt에서 TLS 인증서를 발급받기 위한 도구에요. Certbot 역시 무료로 사용할 수 있는 오픈소스 도구예요. 잘 사용하면 인증서 발급을 자동화할 수도 있어서 개발자들에게 편한 도구예요.

Expand Down Expand Up @@ -204,7 +204,7 @@ $ docker compose up -d

이제 도메인에 들어가보면 HTTPS로 접속할 수 있어요. 브라우저에서 `https://<domain-name>`에 접속해보세요. 아래처럼 인증서가 잘 적용된 것을 확인할 수 있어요.

![인증서 적용](check-cert.png)
![인증서 적용](check-cert.webp)

### 번외: Caddy로 HTTPS 인증서 사용하기

Expand Down
Binary file removed content/post/certbot-docker/osi-7-layer.png
Binary file not shown.
Binary file added content/post/certbot-docker/osi-7-layer.webp
Binary file not shown.
Binary file removed content/post/certbot-docker/skkuding-cert.png
Binary file not shown.
Binary file added content/post/certbot-docker/skkuding-cert.webp
Binary file not shown.
Binary file removed content/post/certbot-docker/tls.png
Binary file not shown.
Binary file added content/post/certbot-docker/tls.webp
Binary file not shown.

0 comments on commit 0ccabbc

Please sign in to comment.