Score:0

การเชื่อมต่อเว็บซ็อกเก็ตที่ปลอดภัยกับเซิร์ฟเวอร์ที่ทำงานบน EC2 ล้มเหลว

ธง us

ฉันมีเซิร์ฟเวอร์ websocket node.js ที่ทำงานบนอินสแตนซ์ EC2 บนพอร์ต 8080 การเชื่อมต่อ websocket ปกติ (ws://) ทำงานได้ดี แต่เมื่อฉันพยายามทำการเชื่อมต่อที่ปลอดภัย (wss://) การเชื่อมต่อเว็บซ็อกเก็ตล้มเหลว

ฉันทราบว่าคำขอ wss ถูกส่งไปยังพอร์ต 443 ดังนั้นฉันจึงใช้ ALB เพื่อส่งต่อคำขอบนพอร์ต 443 ไปยังพอร์ต 8080 เนื่องจากฉันยังใหม่กับ AWS ฉันจึงไม่รู้ว่าฉันทำถูกต้องหรือไม่ นี่คือสิ่งที่ฉันทำ

  1. เซิร์ฟเวอร์ Node.js กำลังฟังพอร์ต 8080 ในอินสแตนซ์ EC2
  2. นี่คือกฎความปลอดภัยขาเข้าสำหรับอินสแตนซ์ EC2 นั้น

กฎความปลอดภัยขาเข้า

  1. ตัวจัดสรรภาระงานแอปพลิเคชันพร้อมผู้ฟัง HTTPS: 443 มันส่งต่อไปยังอินสแตนซ์ EC2 ของฉันบนพอร์ต 8080 โดยใช้โปรโตคอล HTTPS ฉันได้แนบใบรับรอง SSL กับ ALB ด้วย

ฉันไม่สามารถเข้าใจสิ่งที่ฉันทำผิด ความช่วยเหลือใด ๆ ที่ชื่นชม

อัปเดต:

  1. ฉันได้สร้างกลุ่มความปลอดภัยสองกลุ่ม (ec2-sg และ alb-sg) และกำหนดค่าให้ ec2-sg รับทราฟฟิกจาก alb-sg

กฎความปลอดภัยขาเข้า (alb-sg)

กฎความปลอดภัยขาออก (alb-sg)

กฎความปลอดภัยขาเข้า (ec2-sg)

อย่างไรก็ตามฉันไม่สามารถใช้งานได้ กลุ่มเป้าหมายผ่านการตรวจสภาพ ฉันเปิดใช้เซสชันแบบ Sticky แต่การเชื่อมต่อ Websocket ล้มเหลว การเชื่อมต่อ ws ปกติที่เคยทำงานก็หยุดทำงานเช่นกัน สิ่งนี้ทำให้ฉันเชื่อว่าฉันกำลังทำอะไรบางอย่างกับ ALB (เนื่องจากมันทำงานโดยไม่มีโหลดบาลานเซอร์)

อัปเดต 2:

ฉันเปิดใช้งานบันทึกการเข้าถึงสำหรับโหลดบาลานเซอร์ของฉัน นี่คือบันทึก:

https 2021-10-08T08:55:39.157549Z app/alb-latest/3e73469ba9514449 167.94.138.60:32854 172.31.93.226:8080 -1 -1 -1 502 - 41 1215 
"รับ https://3.208.76.74:443/ HTTP/1.1" "-" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-1:144045735746:targetgroup/ec2-8080 -เซิร์ฟเวอร์/2cbf4f7eb51c201e 
"รูท=1-6160078b-606aed86364c5e3f7db627f1" "-" "arn:aws:acm:us-east-1:144045735746:certificate/53a04011-1ea7-4689-b6c6-a7372e42191d" 0 2021-10-08T096:Z091d 
"ส่งต่อ" "-" "-" "172.31.93.226:8080" "-" "-" "-"

การกำหนดค่าพื้นฐานของ ALB 1

การกำหนดค่าพื้นฐาน ALB 2

ผู้ฟัง ALB ฉันได้เปิดใช้งานการเกาะติดระดับกลุ่มกับกลุ่มเป้าหมายเป็นเวลา 1 วัน

รายละเอียดกลุ่มเป้าหมาย

Tim avatar
gp flag
Tim
อินสแตนซ์ ALB และ EC2 อยู่ในกลุ่มความปลอดภัยเดียวกันหรือไม่ โดยทั่วไปคุณควรมีหนึ่ง SG สำหรับแต่ละรายการ และ EC2 SG ควรอนุญาตให้ ALB SG เข้าได้
Debabrata Mondal avatar
us flag
@Tim พวกเขาอยู่ในกลุ่มความปลอดภัยเดียวกัน ใช่ ตอนนี้ฉันได้เปลี่ยนแล้ว แต่ก็ยังใช้งานไม่ได้ คุณช่วยดูการอัปเดตที่ฉันโพสต์ได้ไหม
Tim avatar
gp flag
Tim
กลุ่มความปลอดภัยของคุณดูดีสำหรับฉัน แม้ว่าฉันจะตรวจสอบสิ่งต่างๆ เช่น รหัสไม่ได้ สองสิ่งที่ต้องทำ 1) เปิดใช้งานบันทึกการเข้าถึงบน ALB และเป้าหมาย และตรวจสอบว่าคำขอนั้นไปถึง ALB และเซิร์ฟเวอร์หรือไม่ หากง่ายกว่า คุณสามารถติดตั้งเว็บเซิร์ฟเวอร์มาตรฐานบนพอร์ต 80 เพื่อทดสอบได้ เมื่อเสร็จแล้ว 2) แก้ไขโพสต์ของคุณเพื่อแสดงส่วนสำคัญของการกำหนดค่า ALB
Debabrata Mondal avatar
us flag
@Tim ฉันได้แก้ไขโพสต์แล้ว คุณต้องการข้อมูลอื่น ๆ หรือไม่?
Tim avatar
gp flag
Tim
อ่านความคิดเห็นล่าสุดของฉันอีกครั้ง อย่าเพิ่งให้บันทึกแก่เรา คุณต้องทำความเข้าใจ ตรวจสอบบันทึกบนเว็บเซิร์ฟเวอร์ และตรวจสอบให้แน่ใจว่าคำขอนั้นผ่านหากไม่ใช่ คุณสามารถตั้งค่า Nginx / Apache และลองใช้โปรโตคอลที่เข้าใจกันมากขึ้นเพื่อตรวจสอบว่าสิ่งต่างๆ ใช้งานได้ปกติ ฉันคิดว่าคุณควรขอความช่วยเหลือจากผู้เชี่ยวชาญ เราสามารถให้ความช่วยเหลือได้ แต่ฉันคิดว่าคุณต้องการความช่วยเหลือมากกว่าที่เราจะให้ได้
cn flag
ALB SG ของคุณอนุญาตเฉพาะพอร์ต 8080 ขาออกไปยัง SG อื่น - จะไม่สามารถส่งการตอบกลับไปยังไคลเอนต์ของคุณได้ ลบกฎขาออกและมุ่งเน้นไปที่กฎขาเข้าสำหรับตอนนี้ - กลุ่มความปลอดภัยมีสถานะ ดังนั้นขาออกจึงไม่จำเป็นและเพิ่มความยุ่งยาก
Debabrata Mondal avatar
us flag
ขอบคุณ @ shearn89 ที่สมเหตุสมผลมาก!
Score:0
ธง cn

เพียงคัดลอกและวางความคิดเห็นของฉันเป็นคำตอบในกรณีที่แก้ปัญหาได้

ALB SG อนุญาตให้พอร์ต 8080 ขาออกไปยัง SG อื่นเท่านั้น ซึ่งหมายความว่าจะไม่สามารถส่งการตอบกลับไปยังไคลเอนต์ได้ ซึ่งจะรับฟังพอร์ตแบบสุ่มที่ไม่ใช่ 8080 วิธีที่ดีที่สุดคือการลบกฎขาออกและมุ่งเน้นไปที่กฎขาเข้า - กลุ่มความปลอดภัยมีสถานะ ดังนั้นกฎขาออก ไม่จำเป็นและเพิ่มความยุ่งยาก!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา