SSL/TLS - Basics

μ—¬κΈ°μ„œ λ‹€λ£¨κ²Œ 될 SSL/TLS 의 κ°œλ…μ€ ꡉμž₯히 λ‹¨μˆœν™”λœ 버전이닀.
μ‹€μ œλ‘œλŠ” ꡉμž₯히 λ³΅μž‘ν•œ λ‚΄μš©μ΄λ―€λ‘œ λ”°λ‘œ 찾아보길 μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€.

SSL μΈμ¦μ„œλ₯Ό μ‚¬μš©ν•˜λ©΄ ν΄λΌμ΄μ–ΈνŠΈμ™€ λ‘œλ“œλ°ΈλŸ°μ„œ μ‚¬μ΄μ—μ„œ 전솑 쀑에 μžˆλŠ” νŠΈλž˜ν”½μ„ μ•”ν˜Έν™” ν•  수 μžˆλ‹€.

  • In-Flight μ•”ν˜Έν™”λΌκ³  λΆˆλ¦¬λŠ” κ³Όμ •μœΌλ‘œ,
    즉 데이터가 λ„€νŠΈμ›Œν¬λ₯Ό ν†΅κ³Όν•˜λŠ” 쀑에 μ•”ν˜Έν™”λ˜κ³  λ°œμ‹ μžμ™€ μˆ˜μ‹ μžλ§Œμ΄ 이λ₯Ό 해독할 수 μžˆλŠ” 것
  • SSL은 λ³΄μ•ˆ μ†ŒμΌ“ 계측을 λœ»ν•˜λ©° 연결을 μ•”ν˜Έν™”ν•˜λŠ”λ°μ— μ‚¬μš©λœλ‹€.
  • TLSλŠ” SSL의 μ΅œμ‹  λ²„μ „μœΌλ‘œμ„œ 전솑 계측 λ³΄μ•ˆμ„ μ˜λ―Έν•œλ‹€.
  • μš”μ¦˜μ— 주둜 μ‚¬μš©λ˜λŠ”κ±΄ TLC μΈμ¦μ„œμ§€λ§Œ, λŒ€λΆ€λΆ„ μ‚¬λžŒλ“€μ€ 이λ₯Ό μ—¬μ „νžˆ SSL 이라고 λΆ€λ₯΄κ³  μžˆλ‹€.
  • 곡용 SSL μΈμ¦μ„œλŠ” Comodo, Symantec, GoDaddy, GlobalSign, Letencrypt
    λ“±μ˜ μΈμ¦κΈ°κ΄€μ—μ„œ λ°œκΈ‰λœλ‹€.
  • λ‘œλ“œλ°ΈλŸ°μ„œ(ELB) 와 μ—°κ²°λœ 곡용 SSL μΈμ¦μ„œλ₯Ό μ‚¬μš©ν•˜λ©΄ ν΄λΌμ΄μ–ΈνŠΈμ™€ λ‘œλ“œλ°ΈλŸ°μ„œ 사이에 연결을 μ•”ν˜Έν™”
  • SSL μΈμ¦μ„œμ—λŠ” μ„€μ •ν•œ 유효 기간이 있고, 인증을 μœ„ν•΄ 주기적으둜 κ°±μ‹ ν•΄μ•Ό ν•œλ‹€.

λ‘œλ“œλ°ΈλŸ°μ„œ κ΄€μ μ—μ„œ μΈμ¦μ„œκ°€ μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”κ°€?

image-20220615013948441

  1. μœ μ €κ°€ HTTPSλ₯Ό 톡해 μ—°κ²°
  2. μ΄λ•Œ SλŠ” SSL μΈμ¦μ„œλ₯Ό μ‚¬μš©ν•˜κ³  μžˆλ‹€λŠ” 의미, μ•”ν˜Έν™”λ˜μ–΄ μ•ˆμ „ν•œ μƒνƒœ
  3. 곡용 인터넷을 톡해 λ‘œλ“œ λ°ΈλŸ°μ„œμ™€ μ—°κ²°λœλ‹€.
  4. μ΄λ•Œ λ‘œλ“œλ°ΈλŸ°μ„œλŠ” λ‚΄λΆ€μ μœΌλ‘œ SSL μΈμ¦μ„œ μ’…λ£ŒλΌλŠ” μž‘μ—…μ„ μˆ˜ν–‰ν•œλ‹€.
  5. λ°±μ—”λ“œμ—μ„œλŠ” EC2 μΈμŠ€ν„΄μŠ€μ™€ 톡신할 수 μžˆλŠ”λ°, HTTPλ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— μ•”ν˜Έν™”λŠ” λ˜μ–΄μžˆμ§€ μ•Šλ‹€.
    ν•˜μ§€λ§Œ νŠΈλž˜ν”½μ€ μ–΄λŠμ •λ„μ˜ μ•ˆμ „μ„±μ„ 보μž₯ν•˜λŠ” 사섀 λ„€νŠΈμ›Œν¬ VPCλ₯Ό 톡해 μ „μ†‘λœλ‹€.
  6. ELBκ°€ X.509 μΈμ¦μ„œλ₯Ό λΆˆλŸ¬μ˜¨λ‹€. (SSL or TLS μ„œλ²„ μΈμ¦μ„œλΌκ³  λΆˆλ¦¬λŠ” μΈμ¦μ„œ)
  7. AWS μ—μ„œ ACM 을 μ‚¬μš©ν•΄ SSL μΈμ¦μ„œλ₯Ό 관리할 수 μžˆλ‹€.
    • ACM 은 AWS μΈμ¦μ„œ κ΄€λ¦¬μžμ˜ μ•½μžμ΄λ‹€. (AWS Certification Management)
  8. μš°λ¦¬λ“€μ˜ μΈμ¦μ„œλ„ ACM에 μ—…λ‘œλ“œν•  수 μžˆλ‹€.
  9. HTTPS λ¦¬μŠ€λ„ˆλ₯Ό μ„€μ •ν•  λ•ŒλŠ” κΈ°λ³Έ μΈμ¦μ„œλ₯Ό 지정해야 ν•œλ‹€.
  10. λ‹€μˆ˜μ˜ 도메인을 μ§€μ›ν•˜λŠ” μΈμ¦μ„œ 선택 λͺ©λ‘μ„ μΆ”κ°€ν•  μˆ˜λ„ μžˆλ‹€.
  11. ν΄λΌμ΄μ–ΈνŠΈλŠ” SNI, 즉 μ„œλ²„ 이름 ν‘œμ‹œλ₯Ό μ‚¬μš©ν•΄μ„œ λ„λ‹¬ν•˜λŠ” 호슀트 이름을 지정할 수 μžˆλ‹€.



πŸš€ SNI κ°œλ…

Server Name Indication (SNI)

image-20220615014317375

μ›ν•˜λŠ” 경우 HTTPS에 λŒ€ν•΄ νŠΉμ •ν•œ λ³΄μ•ˆ 정책을 μ„€μ •ν•  수 μžˆλ‹€λŠ” 의미
λ ˆκ±°μ‹œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ λΆˆλ¦¬λŠ” κ΅¬ν˜• TLS SLSλ₯Ό μ§€μ›ν•˜λ„λ‘ 지정할 수 μžˆλ‹€.
SNI λ₯Ό μ‚¬μš©ν•˜λ©΄ ν•œ μ›Ή μ„œλ²„ 상에 λ‹€μˆ˜μ˜ SSL μΈμ¦μ„œλ₯Ό λ°œκΈ‰ν•΄ 단일 μ›Ήμ„œλ²„κ°€ μ—¬λŸ¬ 개의 μ›Ήμ‚¬μ΄νŠΈλ₯Ό μ œκ³΅ν•˜λ„λ‘
ν•˜λŠ” 문제λ₯Ό ν•΄κ²°ν•΄ μ€λ‹ˆλ‹€.

μ΄λŠ” μ΅œμ‹  ν”„λ‘œν† μ½œμ΄λ©° 이λ₯Ό μœ„ν•΄μ„œλŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ 초기 SSLν•Έλ“œμ…°μ΄ν¬μ—μ„œ λŒ€μƒ μ„œλ²„μ˜
ν˜ΈμŠ€νŠΈμ΄λ¦„μ„ λͺ…μ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€.
즉, ν΄λΌμ΄μ–ΈνŠΈκ°€ ν•΄κ²°ν•˜κ³ μž ν•˜λŠ” μ›Ήμ‚¬μ΄νŠΈμ˜ 이름을 μ–˜κΈ°ν•˜λ©΄ μ„œλ²„κ°€ μ–΄λ–€ μΈμ¦μ„œλ₯Ό λΆˆλŸ¬μ˜¬μ§€ μ•Œ 수 μžˆλ‹€.
μ΅œμ‹  ν”„λ‘œν† μ½œμ΄κΈ° λ•Œλ¬Έμ— λͺ¨λ“  ν΄λΌμ΄μ–ΈνŠΈκ°€ 이λ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€.

이 ν”„λ‘œν† μ½œμ€ ALB와 NLB 와 같은 μ΅œμ‹ λ²„μ „μ˜ λ‘œλ“œλ°ΈλŸ°μ„œλ‚˜ CloudFront μ—μ„œλ§Œ μž‘λ™ν•œλ‹€.
λ”°λΌμ„œ ELB 에 SSL μΈμ¦μ„œκ°€ μ—¬λŸ¬κ°œκ°€ μžˆλ‹€λ©΄ ALB λ˜λŠ” NLB λ‘˜μ€‘ ν•˜λ‚˜λΌκ³  μƒκ°ν•˜λ©΄ λœλ‹€.

SSL μΈμ¦μ„œλ₯Ό μ–΄λ””μ—μ„œ μ§€μ›λ κΉŒ

λ‘œλ“œλ°ΈλŸ°μ„œμ˜ Listners νƒ­μ—μ„œ λ¦¬μŠ€λ„ˆλ₯Ό μΆ”κ°€ν•  수 μžˆλ‹€.

  • CLB
    • ν•˜λ‚˜μ˜ SSL μΈμ¦μ„œλ§Œ μ§€μ›ν•œλ‹€.
    • μ—¬λŸ¬κ°œμ˜ SSL μΈμ¦μ„œκ°€ μžˆμ„κ²½μš° μ—¬λŸ¬κ°œμ˜ ν΄λž˜μ‹λ‘œλ“œλ°ΈλŸ°μ„œλ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€.
  • ALB
    • v2 λΌκ³ λ„ν•˜λ©°, 닀쀑 SSL μΈμ¦μ„œλ₯Ό 가진 λ‹€μˆ˜μ˜ λ¦¬μŠ€λ„ˆλ₯Ό 지원할 수 μžˆμ–΄μ„œ μœ μš©ν•˜λ‹€.
    • 그리고 μ΄λ•ŒλŠ” 방금 μ‚΄νŽ΄λ³Έ SNI λ₯Ό μ‚¬μš©ν•œλ‹€.
    • λ‹€μ–‘ν•œ λŒ€μƒκ·Έλ£Ήμ— λŒ€ν•΄ λ‹€μˆ˜μ˜ SSL μΈμ¦μ„œλ₯Ό κ°€μ§ˆ 수 μžˆλ‹€.
  • NLB
    • 닀쀑 SSL μΈμ¦μ„œλ₯Ό 가진 λ‹€μˆ˜μ˜ λ¦¬μŠ€λ„ˆλ₯Ό μ§€μ›ν•˜λ©° μ—­μ‹œ SNI λ₯Ό μ‚¬μš©ν•œλ‹€.

μ‹€μŠ΅

image-20220615020334474

image-20220615020523082

νƒœκ·Έ: , , ,

μΉ΄ν…Œκ³ λ¦¬:

μ—…λ°μ΄νŠΈ:

λŒ“κΈ€λ‚¨κΈ°κΈ°