Home > Network > 2024 > 🌐[Network] WSS(WebSocket Secure) ν”„λ‘œν† μ½œμ΄λž€ λ¬΄μ—‡μΌκΉŒμš”?

🌐[Network] WSS(WebSocket Secure) ν”„λ‘œν† μ½œμ΄λž€ λ¬΄μ—‡μΌκΉŒμš”?
Network

🌐[Network] WSS(WebSocket Secure) ν”„λ‘œν† μ½œμ΄λž€ λ¬΄μ—‡μΌκΉŒμš”?

  • WSS(WebSocket Secure)λŠ” WebSocket ν”„λ‘œν† μ½œμ˜ λ³΄μ•ˆλ²„μ „μž…λ‹ˆλ‹€.
  • WebSocket은 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ μ–‘λ°©ν–₯ 톡신을 μœ„ν•œ ν”„λ‘œν† μ½œλ‘œ, ws://λŠ” λ³΄μ•ˆμ΄ μ μš©λ˜μ§€ μ•Šμ€ 일반 WebSocket 연결을 μ˜λ―Έν•˜λ©°, wss://λŠ” TLS(Transport Layer Security) μ•”ν˜Έν™”λ₯Ό μ‚¬μš©ν•˜λŠ” λ³΄μ•ˆ WebSocket 연결을 μ˜λ―Έν•©λ‹ˆλ‹€.

1️⃣ WSS(WebSocket Secure)의 νŠΉμ§•.

1️⃣ TLS(Transport Layer Security) μ•”ν˜Έν™” 지원.

  • WSS(WebSocket Secure)λŠ” HTTPS(Hypertext Transfer Protocol Secure)κ³Ό μœ μ‚¬ν•˜κ²Œ TLS/SSL μΈμ¦μ„œλ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μ•”ν˜Έν™”ν•©λ‹ˆλ‹€.
    • 이λ₯Ό 톡해 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ 톡신을 λ³΄ν˜Έν•˜κ³ , 데이터가 도청, λ³€μ‘°λ˜μ§€ μ•Šλ„λ‘ ν•©λ‹ˆλ‹€.

2️⃣ λ³΄μ•ˆ κ°•ν™”.

  • WSSλŠ” 일반 WebSocket(ws://)보닀 λ³΄μ•ˆ μˆ˜μ€€μ΄ λ†’μœΌλ©°, λ„€νŠΈμ›Œν¬ νŠΈλž˜ν”½μ„ κ°μ‹œν•˜κ±°λ‚˜ κ³΅κ²©μžκ°€ 데이터λ₯Ό κ°€λ‘œμ±„λŠ” 것을 λ°©μ§€ν•©λ‹ˆλ‹€.

3️⃣ HTTPS ν™˜κ²½κ³Ό ν•¨κ»˜ μ‚¬μš©.

  • WSSλŠ” HTTPS ν™˜κ²½μ—μ„œ μ‚¬μš©λ˜λ©°, HTTPSλ₯Ό μ‚¬μš©ν•˜λŠ” μ›Ήμ‚¬μ΄νŠΈμ—μ„œ λ°˜λ“œμ‹œ WSSλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.
    • λΈŒλΌμš°μ €λŠ” HTTPS μ‚¬μ΄νŠΈμ—μ„œ ws:// 연결을 ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

2️⃣ WSS μ‚¬μš© 사둀.

  • μ‹€μ‹œκ°„ μ±„νŒ… μ• ν”Œλ¦¬μΌ€μ΄μ…˜.
    • 예: Slack, Discord 같은 μ„œλΉ„μŠ€μ—μ„œ μ‚¬μš©μž κ°„ μ‹€μ‹œκ°„ λ©”μ‹œμ§€ 전솑.
  • 라이브 데이터 슀트리밍.
    • 예: 주식 가격 μ—…λ°μ΄νŠΈ, 슀포츠 κ²½κΈ° μŠ€μ½”μ–΄.
  • κ²Œμž„ μ„œλ²„.
    • 예: μ‹€μ‹œκ°„ λ©€ν‹°ν”Œλ ˆμ΄μ–΄ κ²Œμž„μ—μ„œμ˜ λΉ λ₯Έ 데이터 κ΅ν™˜.
  • IoT κΈ°κΈ° 관리.
    • IoT μž₯μΉ˜μ™€ μ„œλ²„ κ°„μ˜ μ•ˆμ „ν•œ 데이터 전솑.

3️⃣ WSS와 HTTPS의 차이.

νŠΉμ§• HTTPS WSS
μ‚¬μš© ν”„λ‘œν† μ½œ HTTP over TLS WebSocket over TLS
포트 번호 443 443(λŒ€λΆ€λΆ„μ˜ 경우)
톡신 방식 μš”μ²­-응닡(Request-Response) μ–‘λ°©ν–₯(Full-Duplex, Real-Time)
μ‚¬μš© λͺ©μ  일반 μ›Ή λΈŒλΌμš°μ§• 및 API 톡신 μ‹€μ‹œκ°„ 데이터 κ΅ν™˜

4️⃣ WSSλ₯Ό μ„€μ •ν•˜λ €λ©΄?

1️⃣ μ„œλ²„μ—μ„œ SSL/TLS μΈμ¦μ„œ μ„€μΉ˜.

  • μΈμ¦μ„œλŠ” Let’s Encrypt, DigiCert λ“±μ—μ„œ λ°œκΈ‰λ°›μ•„μ•Ό ν•©λ‹ˆλ‹€.
  • 예: Nginxλ‚˜ Apache에 TLSλ₯Ό μ„€μ •.

2️⃣ WebSocket μ„œλ²„ κ΅¬ν˜„.

  • Node.js, Java, Python λ“±μ—μ„œ WebSocket μ„œλ²„λ₯Ό κ΅¬ν˜„ν•˜κ³ , TLS μΈμ¦μ„œλ₯Ό μ μš©ν•©λ‹ˆλ‹€.

3️⃣ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ WSS μ—°κ²° μ‚¬μš©.

  • ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œλŠ” wss://λ₯Ό μ‚¬μš©ν•˜μ—¬ WebSocket μ„œλ²„μ™€ μ—°κ²°ν•΄μ•Ό ν•©λ‹ˆλ‹€.
    • 예(JavaScript)
        const socket = new WebSocket('wss://example.com/socket');
        socket.onopen = () => console.log('Connected');
        socket.onmessage = (event) => console.log(event.data);
      

5️⃣ μš”μ•½.

  • WSSλŠ” WebSocket의 λ³΄μ•ˆ λ²„μ „μœΌλ‘œ, ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„ 데이터λ₯Ό μ•”ν˜Έν™”ν•˜μ—¬ μ•ˆμ „ν•˜κ²Œ μ „λ‹¬ν•©λ‹ˆλ‹€.
  • ws://λŠ” HTTP와 같이 λ³΄μ•ˆμ΄ μ—†λŠ” ν™˜κ²½μ—μ„œ μ‚¬μš©λ˜κ³ , wss://λŠ” HTTPS처럼 TLSλ₯Ό μ μš©ν•œ ν™˜κ²½μ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€.
  • HTTPS μ›Ήμ‚¬μ΄νŠΈλŠ” λ°˜λ“œμ‹œ wss://λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.