Score:1

กำลังเชื่อมต่ออินสแตนซ์ GCP VM กับโดเมน Google

ธง bf

ฉันกำลังพยายามเชื่อมต่อชื่อโดเมนที่ได้รับจาก Google Domains กับอินสแตนซ์ Google Cloud Platform VM โดเมนของฉันคือ .dev และเมื่อฉันลอง nslookup และ dig trace พวกเขาชี้ไปยังที่อยู่ IP ที่ถูกต้องแล้ว การเข้าถึงเว็บไซต์โดยใช้ IP นี้ใช้งานได้ดี ฉันไม่สามารถเข้าถึงเว็บไซต์เดียวกันผ่านชื่อโดเมนได้

ต่อไปนี้คือการกำหนดค่าที่ฉันทำ:

ในอินสแตนซ์ VM ของฉัน (Compute Engine API):

  • เปิดใช้งานทราฟฟิก http และ https
  • มีแท็กเครือข่าย http-server และ https-server

ใน VPC newtorks API:

ใน API บริการเครือข่าย:

  • เพิ่มชุดบันทึกสำหรับ A และ CNAME ที่ตรงกับ DNS จาก Google Domains และ IP ภายนอกจากอินสแตนซ์ VM

ใน Google Domains:

  • แก้ไขเนมเซิร์ฟเวอร์ให้เหมือนกับจากค่า Network Services API Registrar Setup (เพิ่มภายใต้แท็บเนมเซิร์ฟเวอร์แบบกำหนดเอง)

ภาพหน้าจอ: ภาพหน้าจอของไฟร์วอลล์ ภาพหน้าจอโซนเครือข่าย การตั้งค่า VM เกี่ยวกับไฟร์วอลล์

โปรดเข้าใจว่าฉันไม่มีพื้นฐานด้านเครือข่าย ขอบคุณมากที่ช่วย!

John Hanley avatar
cn flag
1) คุณเปิดใช้งาน HTTPS บนเว็บเซิร์ฟเวอร์หรือไม่ 2) คุณติดตั้งใบรับรอง SSL หรือไม่ 3) โดเมนที่ลงท้ายด้วย .dev สามารถเข้าถึงได้โดยใช้ HTTPS โดยใช้เว็บเบราว์เซอร์เท่านั้น
Marky avatar
bf flag
ใช่ https เปิดใช้งานอยู่ ฉันควรจะสร้างใบรับรอง SSL ต่อไป แต่ฉันไม่สามารถลงทะเบียนชื่อโดเมนของฉันได้ เนื่องจากชื่อโดเมนปฏิเสธที่จะเชื่อมต่อกับ IP ของเซิร์ฟเวอร์ของฉัน
John Hanley avatar
cn flag
ทุกอย่างในภาพหน้าจอของคุณเรียบร้อยดี นั่นทำให้ไฟร์วอลล์ภายใน (UFW) หรือเว็บเซิร์ฟเวอร์ แก้ไขคำถามของคุณและใส่รายละเอียดเกี่ยวกับคำถามเหล่านั้น นอกจากนี้ ตรวจสอบว่าเว็บเซิร์ฟเวอร์ของคุณกำลังฟังพอร์ต 443 สำหรับอินเทอร์เฟซเครือข่าย: **netstat -tulpn | เกรป ฟัง**
Marky avatar
bf flag
ฉันได้ตรวจสอบว่าเว็บเซิร์ฟเวอร์กำลังฟังพอร์ต 443 และแก้ไขคำถามด้านบนตามนั้น ดูเหมือนว่าจะไม่ ฉันไม่แน่ใจว่าจะหาไฟร์วอลล์ภายในใน GCP ได้ที่ไหน ช่วยหน่อย? ทั้งหมดที่ฉันรู้คือกฎไฟร์วอลล์จาก API เครือข่าย VPC
John Hanley avatar
cn flag
ไม่มีผู้ฟังสำหรับพอร์ต 443 หมายความว่าเว็บเซิร์ฟเวอร์ไม่ได้รับการกำหนดค่าให้รับฟังคำขอบนพอร์ต 443
Marky avatar
bf flag
ขอบคุณ. ฉันกำหนดค่าไฟล์ Conf ของเซิร์ฟเวอร์และให้มันฟัง 443 แทน 80 นอกจากนี้ ฉันได้เพิ่มใบรับรอง SSL เข้าไปด้วย หลังจากนี้ทุกอย่างทำงานได้ดี! ขอบคุณมากสำหรับความช่วยเหลือของคุณ @John Hanley!
John Hanley avatar
cn flag
คุณยังคงต้องการให้เว็บเซิร์ฟเวอร์รับฟังพอร์ต 80 เช่นกัน เปลี่ยนเส้นทางการเชื่อมต่อพอร์ต 80 ไปยังพอร์ต 443 (การเปลี่ยนเส้นทาง HTTPS)
Marky avatar
bf flag
เออ ลืมบอกไป ฉันยังคงฟังพอร์ต 80 ฉันใส่ไว้ในส่วนคำสั่งเซิร์ฟเวอร์แยกต่างหากในไฟล์ conf
Score:1
ธง bf

ตอบตามความคิดเห็นของ @John Hanley:

  1. เว็บไซต์ที่มีนามสกุลโดเมน .dev จำเป็นต้องเปิด port443 ตรวจสอบว่าเว็บเซิร์ฟเวอร์กำลังฟังพอร์ตนี้โดยเรียกใช้ netstat -tulpn | ฟัง.

  2. เนื่องจาก (ตามที่ระบุไว้ในคำถามด้านบน) port443 ไม่ปรากฏในรายการ ให้กำหนดค่าเว็บเซิร์ฟเวอร์ของคุณเพื่อฟังพอร์ต 443 ในกรณีของฉัน ฉันใช้ nginx เป็นเซิร์ฟเวอร์ ดังนั้นฉันจึงแก้ไขไฟล์ใน /etc/nginx/nginx .conf เพื่อให้เซิร์ฟเวอร์ของฉันฟังพอร์ต 443

  3. ณ จุดนี้ การพยายามเข้าถึงเว็บไซต์จะแสดงข้อผิดพลาดว่าคุณไม่มีใบรับรอง SSL ดังนั้นสร้างหนึ่ง ฉันใช้ certbot สำหรับสิ่งนี้เพื่อสร้างใบรับรองและคีย์ ssl

  4. กลับไปที่ไฟล์ nginx.conf และเปิด ssl เพิ่มใบรับรอง ssl และคีย์ ควรมีลักษณะดังนี้:

... เซิร์ฟเวอร์{ server_name example.com www.example.com; ฟัง 443; เปิด ssl; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/bdcs.dev/privkey.pem; ที่ตั้ง / { ... } ... } ...
  1. รีสตาร์ทเซิร์ฟเวอร์ (sudo systemctl รีสตาร์ท nginx)

โพสต์คำตอบ

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