ขอรบกวน ท่านใด เคยใช้ Azure Virtual Machine บ้างครับขอความรู้หน่อยครับ
ผมติดปัญหา เรื่อง เรียก https ไม่ได้
1 ผมติดตั้ง Glassfish4 บน Azure Sever Windows 2019 ได้ทำติดตั้ง SSL บน Glassfish4 เรียบร้อยแล้ว Server เปิด Port 443 เรียบร้อยแล้ว
2 Portal ของ Azure เปิด Port 443 เรียบร้อยแล้ว
ติดปัญหา เวลา เรียก https://api.xxxxxxs.com เรียกไม่ได้ครับ
ปกติ ทำกับ Server ที่ไม่ใช่ Azure จะสามารถเรียกได้ ไม่มีปัญหาอะไร
เลยรบกวน พอจะทราบมั้ยครับว่า ฝั่งหน้า Portal ของ Azure จะต้องเปิดอะไรเพิ่มหรือไม่ครับ
ขอบคุณมากครับ
ต้องเช็คหลายจุดครับ
Pitawat's Blog :: บล็อกผมเองครับ
1 ตอนนี้ เป็น Public IP แล้วครับ ถ้าเรียก http://api.xxxxxxx.com เรียกได้ครับ
2 Azure Portal เปิด 443 ไว้แล้ว อันนี้หมายถึง Inbound port rules ของ NSG ที่ associate
อยู่กับ Network interface ของ VM อันนี้ถูกต้องครับ
3 ยังไม่ได้ลองปิด Windows Firewall ครับ
ขอบคุณมากครับ ที่ให้คำแนะนำที่เป็นประโยชน์ เดี๋ยวจะลอง ปิด Windows Firewall ดูครับ
ลองปิด Windows Firewall แล้วครับ ยังเรียกไม่ได้ครับ
-
ลองพยายามจำกัด scope ว่าเป็นที่เครื่องหรือว่าเป็นที่ Network ครับ
อาจจะลองทดสอบเรียกจากบนเครื่องเอง ว่า HTTP Port 80 ใช่งานได้หรือไม่ HTTPS 443 ใช้งานได้หรือไม่ Certificate Trusted รึเปล่า ถ้าทำงานได้ แปลว่าตัวเครื่องน่าจะเซ็ตถูก
แล้วลองขยับไปทดสอบจากเครื่องใน VNet เดียวกัน ถ้าไมีมีก็ขยับมาทดสอบจาก Public เน้นไปที่ NSG/Firewall ลองทดสอบทั้ง 80/443 ว่ามีพฤติกรรมเหมือนกันหรือไม่ แล้วค่อยแก้ไปทีละจุดครับ ถ้าเครื่องยังไม่มี Sensitive data อาจจะทดสอบ Allow All ไปชั่วคราว เพื่อ identify ว่าปัญหาเกี่ยวข้องกับจุดนั้นๆหรือไม่ รวมถึงพวก Antivirus บนเครื่องด้วยเช่นกันครับ
อีกอย่างคือ ลองสังเกตุ Error ด้วยก็ดีครับ ว่าเวลาใช้งานไม่ได้นั้นเป็นพวก DNS (พวก Name cannot be resolved) หรือ Firewall (พวก Timeout)
สุดท้ายเสร็จแล้วแนะนำให้ปิด port 80 ไว้ครับ หรือไม่ก็ทำ Redirect ไป HTTPS
ขอบคุณ คำแนะนำที่มีประโยชน์ ผมได้ scope ว่าเป็นที่เครื่องหรือว่าเป็นที่ Network ครับ
ลองทดสอบแบบ http://localhost:8080
พบว่า น่าจะเป็นปัญหา ของฝั่ง Server ครับ
ตามที่ โพสต์ ด้านล่างครับ
ขอบคุณมากนะครับ
ผมได้ลองทำตามคำแนะนำ จะแยกว่า มีปัญหาส่วนใด
ติดตั้ง Glassfish4 Port 8080 ติดตั้ง SSL Port 443
Server 2 ตัวนี้จะ Setup เหมือนกัน
ผมทดสอบกับ Server1
ทดสอบเรียก แบบ http://localhost:8080
จะเข้าหน้าแรกของ Glassfish4
ถ้าเรียกแบบ https://localhost/
จะแจ้ง Warning: Potential Security Risk Ahead
อันนี้คือ ปกติ
คราวนี้ มาทดสอบที่ Server2 (Azure Virtual Machine)
แบบ http://localhost:8080
จะเข้าหน้าแรกของ Glassfish4
ถ้าเรียกแบบ https://localhost/
แจ้ง Secure Connection Failed
แสดงว่า ตอนนี้ คงมีปัญหา ที่ตัว Server2 ใช่มั้ยครับ
ปกติ Server ผมก็เปิด Port 443
ก็ใช้ได้แล้ว แต่ Server2 นี้ เปิดแล้วก็ยังใช้ไม่ได้
ถ้าเปิด Port 443 แล้วยังใช้ไม่ได้ จะต้องมีอะไรเพิ่มเติมอีกหรือเปล่าครับ
ขอบคุณมากครับ
คิดว่าเป็นที่ตัว Server 2 เองครับ อาจจะต้องไล่ดูการตั้งค่าของ TLS Certificate ครับ เพราะถ้า Port 8080 ใช้งานได้ แปลว่าตัว Glassfish เองทำงานได้แล้ว
ไม่แน่ใจว่าตัว Certificate สำหรับทำ HTTPS (TLS) เอามาจากไหนครับ เป็น Self signed, ใช้ Let's Encrypt หรือว่าซื้อมา ลองดูว่าพวก Subject name ตั้งถูกใหม่ (อาจจะลองดูว่าระหว่างเข้าเว็บด้วย https://localhost กับ https://{machine-name} ให้ผลแตกต่างกันหรือไม่ครับ
พบปัญหาแล้วครับ
เป็นความผิดพลาดของ ผู้ให้บริการ SSL แจ้งชื่อของ Certificate NickName: ของ Glassfish ผิดครับ
จริงแล้วทุกอย่าง เรื่อง Server เปิด Port 443 เรื่อง Portal ของ Azure เปิด Port 443 ทุกอย่างทำถูกต้องแล้ว
แค่เรื่อง Certificate NickName:ผิดเท่านั้นเอง ทำให้วุ่นวายเลย
จริงแล้ว ตอน config ผมได้ถามย้ำไปแล้วว่า ชื่อ NickName ถูกต้องไหม เขาแจ้งมาถูกต้องแล้ว
ผมก็เลยต้องเช็คเรื่อง Server เลยไปกันใหญ่
ขอบคุณ ทุกท่านนะครับ ที่ให้ความช่วยเหลือ ที่เป็นประโยชน์ทำให้แก้ไขได้ ขอบคนทุกท่านครับ