ผมทำ Zeroshell Firewall สำหรับเป็น network authentication หลังจากผม setup ส่วนที่เกี่ยวกับ Certificate ที่จะใช้กับ https ผมได้ import COMODO Certificates (ที่มหาวิทยาลัยใช้บริการ)
เมื่อทดสอบการใช้งาน เข้าโปรแกรม Firefox บน Ubuntu เมื่อผู้ใช้ใส่ URL เพื่อไปเว็บไซต์ใด ๆ จะพบกับหน้า network authentication และ https ถูกต้อง (เป็นสีเขียว) แต่เมื่อเปิดด้วย Google Chrome จะพบว่า https จะไม่ถูกต้อง (เป็นขีด / สีแดง) ทำไมจึงเป็นเช่นนั้น
เปิดเข้าไปดูรายการ Certificates ที่อยู่ใน Browser Firefox เทียบกับ Google Chrome ก็พบว่ามีความแตกต่างต่างกันที่บรรทัด คือ COMODO RSA Domain Validation Secure Server CA ดังนี้
รูปข้างล่างนี้เป็นรายการ Certificates ของ COMODO ใน Firefox บน Ubuntu 16.04 ซึ่ง มี บรรทัดที่ว่านี้
รูปข้างล่างนี้เป็นรายการ Certificates ของ Comodo ใน Google Chrome บน Ubuntu 16.04 ซึ่ง ไม่มี
รูปข้างล่างนี้เป็นรายการ Certificates ของ COMODO ใน Google Chrome for Windows 10 ซึ่ง มี บรรทัดดังกล่าวอยู่ในแท็บ Intermediate Certification Authorities ซึ่งผมพบว่ารายการมันจะเกิดขึ้นหลังจากเคยไปเว็บไซต์ใด ๆ ที่ติดตั้ง COMODO Certs ไว้
ผมก็ไป export “COMODO RSA Domain Validation Secure Server CA” จาก Firefox แล้วนำไป import ใน Google Chrome บน Ubuntu 16.04 เพื่อทดสอบว่ามันเกี่ยวกันมั้ย มันเกี่ยวกันจริง ๆ ด้วย แต่ผมไม่รู้ว่าทำไมจึงเป็นเช่นนั้น จึงต้องการจะบันทึกไว้ เผื่อใครที่รู้จะมาช่วยอธิบาย
ในหน้า Login นั้น สัญลักษณ์ https แสดงเป็นสีเขียว ถูกต้องได้ ตามรูป
ใครรู้มาเฉลยที
เพิ่มเติมท่อนข้างล่างนี้เมื่อ 11 พ.ค. 60 ครับ
ตอนนี้ผมได้คำตอบมาอัปเดตแล้วครับ จากที่ได้ความช่วยเหลือจากคุณพรพิทักษ์ สันติภาพถาวร ผู้ดูแล PSU CERTS เราพบว่าในหน้าคอนฟิกของ Zeroshell นั้น ในเมนู Captive Portal X.509 Authentication นั้นหลังจากเรา import #1 Trusted CA จากไฟล์ STAR_psu_ac_th.ca-bundle ดังรูป
แล้วเราจะได้บรรทัด COMODO RSA Domain Validation Secure Server CA เพิ่มขึ้นมา ดังรูป
และ #2 Imported Certificates and Keys ด้วยไฟล์ STAR_psu_ac_th.crt และ STAR_psu_ac_th_nopass.key ดังรูป
แล้วเราจะได้บรรทัด OU=Domain Control Validated, OU=PositiveSSL Wildcard, CN=*.psu.ac.th มาดังรูป
จากนั้น เราจะต้องไปคลิกตัวเลือก Authentication เพื่อ เลือก Allow the X.509 login with the certificates signed by the following Trusted CAs: ด้วย COMODO RSA Domain Validation Secure Server CA ดังรูป
สรุปว่าผมยังตั้งค่าไม่ครบถ้วนนั่นเอง คือ ขาดการตั้งค่าเรื่อง Authentication นี่เองว่าให้อนุญาตการ login ด้วย certificate ที่ signed โดย Trusted CAs ที่เรา import เข้าไปนั่นเอง
ขอให้บทความนี้มีประโยชน์ สร้างความเข้าใจ และ เป็นการบันทึกไว้ว่า หากเรานำ PSU CERTs ไปติดตั้งทำเป็น Captive Portal ในระดับคณะ ก็สามารถทำได้โดยอาจจะนำบทความนี้ไปเป็นตัวอย่างประกอบครับ
ไม่รู้ช่วยได้รึป่าว แต่มาแชร์ประสบการณ์ในการเจอ https แดงครับ แต่จะไม่เหมือนกับคุณวิบูลย์ วราสิทธิชัย ครับ เผื่อช่วยได้ไม่มากก็น้อย
ตอนที่ผมพัฒนาเว็บใหม่ๆ ด้วย lighttpd จะเจอปัญหา https แดงขณะเปิดโครมด้วยมือถือ
โดยไล่เช็คพบว่า Cer ถูกติดตั้ง STAR_psu_ac_th.pem (cat STAR_psu_ac_th.crt STAR_psu_ac_th.key) เพียงไฟล์ด้วยใน lighttpd
จึงไปไล่เช็คด้วย tool ของ Comodo และ document ของ lighttpd จึงเพิ่ม STAR_psu_ac_th.ca-bundle เข้าไปใน config ทำให้ https แดงจึงหายไปครับ
——
ส่วน nginx ผมต้อง cat .crt กับ .ca-bundle เป็นไฟล์เดียวกัน (.crt-ca) ดังนั้นจึง config จึงเป็นดังนี้
ssl_certificate /[path]/STAR_psu_ac_th.crt-ca;
ssl_certificate_key /[path]/STAR_psu_ac_th.key;
——
ส่วนใน Tomcat จำไม่ผิดจำเป็นต้องเอา ca-bundle มาใช้ด้วยจึงจำสำเร็จ แต่ก็ลืมไปแล้วว่า export ไฟล์ยังไงแล้ว จำไม่ผิดจะใช้ pkcs12 แทน
ก่อนอื่นต้องขอขอบคุณมากมี่อ่านปุ๊ป คอมเม้นต์มาเลย ช่วย ๆ กันครับ
คอมเม้นต์มีประโยชน์ครับ เพราะจะได้รู้ว่า พวก server นั้น คอนฟิกแต่ละซอฟต์แวร์ก็ไม่เหมือนกัน ในกรณีของผมนั้น มันเป็นหน้าต่าง GUI ให้ใส่ cert และ key ถ้าใส่ไม่ครบมันก็ไม่ผ่านครับ ดังนั้นหากเครื่องอยู่เน็ตเดียวกับ Firewall ละก็ https ก็แสดงเขียวนะครับ แต่ถ้านำเครื่องไปอยู่ต่ำกว่า Firewall เพื่อให้มันต้องทำ network authentication (login) ก่อนใช้งานเน็ต อย่างนี้ ก็มีปัญหากับเบราว์เซอร์ที่ไม่มีบรรทัด COMODO RSA Domain Validation Secure Server CA ครับ
ลอง cat .crt กับ .ca-bundle เพิ่มทำ bundle.crt ก่อนดูครับ แล้วนำเข้าผ่านหน้า GUI พร้มอ key ดูครับ ผมว่าน่าจะผ่านอยู่
อ้างอิง https://www.digicert.com/ssl-certificate-installation-nginx.htm
ก็ใช้วิธีการเดียวกับที่คุณสาโรจน์ทำครับ ถูกต้องแล้ว สรุปว่าผมยังตั้งค่าไม่ครบถ้วนนั่นเอง คือ ขาดการตั้งค่าเรื่อง Authentication นี่เองว่าให้อนุญาตการ login ด้วย certificate ที่ signed โดย Trusted CAs ที่เรา import เข้าไป COMODO RSA Domain Validation Secure Server CA นั่นเอง
สรุปว่า เราจะใช้ไฟล์ 3 ไฟล์ ดังนี้
#1 import Trusted CA จากไฟล์ STAR_psu_ac_th.ca-bundle และ
#2 import Certificates and Keys ด้วยไฟล์ STAR_psu_ac_th.crt และ STAR_psu_ac_th_nopass.key