การแก้ไขปัญหาใบรับรอง SSL และ ServBay CA
เอกสารนี้รวบรวมปัญหาที่เกิดขึ้นบ่อยเกี่ยวกับใบรับรอง SSL และ ServBay CA ในสภาพแวดล้อมการพัฒนาเว็บไซต์แบบโลคอลด้วย ServBay พร้อมแนวทางแก้ไข
ทำไมเมื่อเปิดเบราว์เซอร์ถึงพบข้อความว่าไม่เชื่อถือใบรับรอง SSL?
หากคุณพยายามเข้าเว็บไซต์ในเครื่องที่โฮสต์ด้วย ServBay แล้วพบคำเตือนคล้ายด้านล่างนี้ แสดงว่ามีปัญหาเกี่ยวกับการตั้งค่าใบรับรอง SSL:
- Chrome / Edge:
Your connection is not private(การเชื่อมต่อของคุณไม่เป็นส่วนตัว)- รหัสผิดพลาด
NET::ERR_CERT_AUTHORITY_INVALID - รหัสผิดพลาด
NET::ERR_CERT_COMMON_NAME_INVALID(พบได้ไม่บ่อย แต่จะเกิดเมื่อชื่อโดเมนไม่ตรงกับใบรับรอง)
- Firefox:
Warning: Potential Security Risk Ahead(คำเตือน: มีความเสี่ยงด้านความปลอดภัยรออยู่ข้างหน้า)- เมื่อกด "ขั้นสูง" อาจเห็นรหัสผิดพลาด
SEC_ERROR_UNKNOWN_ISSUER - รหัสผิดพลาด
SSL_ERROR_BAD_CERT_DOMAIN(ถ้าใบรับรองไม่ตรงกับโดเมน)
- Safari:
This Connection Is Not Private(การเชื่อมต่อนี้ไม่เป็นส่วนตัว)Safari ไม่สามารถตรวจสอบตัวตนของเว็บไซต์ "your-domain.test"(Safari ไม่สามารถรับรองตัวตนของ “your-domain.test” ได้)
สาเหตุหลักของปัญหานี้ คือ ServBay User CA และ ServBay Public CA ยังไม่ได้ติดตั้งหรือไม่ได้รับการเชื่อถืออย่างถูกต้อง ซึ่งอาจเกิดจาก:
- ใบรับรองหลักของ ServBay ยังไม่ได้เพิ่มลงในรายการที่เชื่อถือของระบบ
- คุณเคยใช้ชื่อโดเมนเดียวกัน (เช่น
myapp.test) กับ MAMP / Laravel Herd หรือเครื่องมือพัฒนาอื่น ซึ่งอาจเกิดความขัดแย้งระหว่างใบรับรอง หรือมีปัญหากับระบบใบรับรองเดิม ส่งผลให้เบราว์เซอร์แคชข้อมูลใบรับรองหรือสถานะความเชื่อถือที่ผิดพลาด
วิธีแก้ไข
โปรดดำเนินตามขั้นตอนเหล่านี้:
- เปิดแอปพลิเคชัน ServBay
- ไปที่ การตั้งค่า (Settings) และค้นหา ServBay Root CA
- คลิก ติดตั้ง ServBay Root CA ใหม่ (Reinstall ServBay Root CA) ServBay จะพยายามแก้ไขปัญหาการติดตั้งและความเชื่อถือใบรับรองโดยอัตโนมัติ
- ปิดเบราว์เซอร์ทั้งหมดและเปิดใหม่ (ต้องปิดทุกหน้าต่างและทุกโปรเซสเพื่อเคลียร์สถานะ SSL ที่แคชไว้)
- เข้าเว็บไซต์ของคุณอีกครั้ง ตอนนี้ข้อผิดพลาดเกี่ยวกับใบรับรอง SSL ควรหมดไป
หากปัญหายังอยู่:
โดยทั่วไป ระบบอาจมีใบรับรองเก่าหรือขัดแย้งกัน โดยเฉพาะกรณีที่เคยใช้ MAMP หรือ Herd ออกใบรับรองให้โดเมนเดียวกันมาก่อน
- เปิดเครื่องมือจัดการใบรับรองของระบบ:
- macOS: เปิด Keychain Access ใน "โปรแกรม" > "เครื่องมืออรรถประโยชน์"
- Windows: กด Win+R แล้วพิมพ์
certmgr.mscกด Enter เพื่อเปิดตัวจัดการใบรับรอง
- ค้นหาโดเมนที่มีปัญหาในกล่องค้นหา (เช่น
myapp.testหรือใช้คำค้นอื่นอย่างmampหรือherd) - กรองที่ “ประเภท” เป็น Certificates
- ตรวจสอบใบรับรองทั้งหมดที่เกี่ยวข้องกับโดเมนที่ค้นหา โดยเฉพาะชื่อผู้ออกใบรับรอง (Issuer) ที่เป็น
ServBay User CA,MAMP Development CA,Laravel Herd CAหรือชื่อคล้ายกัน - เลือก ใบรับรองที่เกี่ยวข้องกับโดเมนปัญหา (โดยเฉพาะที่ไม่ได้ออกโดย
ServBay User CAหรือดูน่าสงสัย) แล้วกดDeleteเพื่อลบ อาจต้องใส่รหัสผ่านระบบ โปรดระวังลบเฉพาะใบรับรองที่เกี่ยวกับโดเมนพัฒนาในเครื่องของคุณเท่านั้น - (เลือกทำแต่แนะนำ) ค้นหาคำว่า
ServBay User CAและServBay Public CAอีกครั้งใน Keychain Access เพื่อให้แน่ใจว่าใบรับรองอยู่และไม่มีเครื่องหมาย "x" สีแดง (หมายความว่าไม่ได้รับความเชื่อถือ) หากยังไม่เชื่อถือ ให้ดับเบิลคลิกที่ใบรับรอง ขยาย "Trust" แล้วตั้ง "When using this certificate" เป็น "Always Trust" - กลับไปที่แอป ServBay
- ไปที่ Settings -> ServBay Root CA
- คลิก สร้างใบรับรองผู้ใช้ ServBay ทั้งหมดใหม่ (Recreate All ServBay User Certificates) จะเป็นการสร้างใบรับรอง SSL ให้ทุกเว็บไซต์ที่จัดการด้วย ServBay ใหม่ทั้งหมด
- รีสตาร์ทเครื่องคอมพิวเตอร์ เพื่อให้ระบบโหลดใบรับรองและการตั้งค่าความเชื่อถือล่าสุดทั้งหมด
- เปิดเบราว์เซอร์แล้วลองเข้าเว็บไซต์อีกครั้ง

การเพิ่มรายละเอียดข้อผิดพลาดเหล่านี้ช่วยให้ผู้ใช้สามารถตรวจสอบและแก้ไขปัญหาเกี่ยวกับความเชื่อถือใบรับรอง SSL ได้อย่างรวดเร็ว
ทำอย่างไรเมื่อใบรับรอง SSL หายไป?
ระหว่างการพัฒนาเว็บไซต์ในเครื่องด้วย ServBay คุณอาจเผลอลบหรือสูญเสียไฟล์ใบรับรอง SSL ของเว็บไซต์ ซึ่งจะส่งผลให้ Web Server (Nginx, Caddy หรือ Apache) ไม่สามารถเริ่มทำงานหรือโหลดเว็บไซต์ได้ โดยจะมีบันทึกข้อผิดพลาดเกี่ยวกับไฟล์ใบรับรองปรากฏใน log
อาการของปัญหา
เมื่อไฟล์ใบรับรอง SSL (.crt และ .key) ที่ ServBay สร้างให้อัตโนมัติหายไป คุณจะพบข้อผิดพลาดใน log ของ Web Server ว่าไม่สามารถค้นหาหรืออ่านไฟล์ใบรับรองที่กำหนดไว้
ตัวอย่างข้อความผิดพลาดที่พบบ่อย ได้แก่:
Nginx Error Messages:
log
nginx: [emerg] cannot load certificate "/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt, r) error:10000080:BIO routines::no such file)
nginx: configuration file /Applications/ServBay/package/etc/nginx/nginx.conf test failed1
2
2
Caddy Error Messages:
log
Error: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: open /Applications/ServBay/ssl/private/tls-certs/servbay.host/ser3vbay.host.crt: no such file or directory1
Apache Error Messages:
log
AH00526: Syntax error on line 15 of /Applications/ServBay/package/etc/apache/vhosts/servbay.host.conf:
SSLCertificateFile: file '/Applications/ServBay/ssl/pri3vate/tls-certs/servbay.host/servbay.host.crt' does not exist or is empty1
2
2
ข้อผิดพลาดเหล่านี้ชี้ไปที่ปัญหาเดียวกัน: เส้นทางไฟล์ใบรับรอง SSL ที่กำหนดไว้ใน Web Server ไม่ถูกต้องเนื่องจากไฟล์ไม่มีอยู่หรือไม่สามารถใช้งานได้
วิธีแก้ไข
สำหรับใบรับรอง SSL ที่ ServBay สร้างให้อัตโนมัติ ServBay มีระบบตรวจสอบและเซ็นใบรับรองใหม่อัตโนมัติเมื่อตรวจพบการสูญหายของไฟล์
ปฏิบัติตามขั้นตอนนี้:
- เปิดแอป ServBay: ตรวจสอบว่าแอป ServBay ทำงานอยู่
- เข้าสู่หน้าเว็บไซต์: ในเมนูด้านซ้ายของแอป เลือก เว็บไซต์
- เลือกเว็บไซต์ที่มีปัญหา: ค้นหาและคลิกชื่อเว็บไซต์ที่พบปัญหาใบรับรอง SSL หาย
- ServBay ตรวจสอบและเซ็นใหม่อัตโนมัติ: ในขั้นตอนโหลดข้อมูลเว็บไซต์ ServBay จะเช็คว่าไฟล์ใบรับรอง SSL ที่จำเป็น (
.crtหรือ.key) อยู่หรือไม่ หากไม่พบ จะออกและติดตั้งใบรับรองใหม่ให้อัตโนมัติ (ไฟล์จะอยู่ที่/Applications/ServBay/ssl/private/tls-certs/ชื่อโดเมนของคุณ/) - รีสตาร์ท Web Server: เมื่อไฟล์ใบรับรองสร้างใหม่และติดตั้งเรียบร้อย รีสตาร์ทแพ็กเกจซอฟต์แวร์ Web Server ที่ดูแลเว็บไซต์นี้ (Nginx, Caddy, หรือ Apache) โดยไปที่หน้า แพ็กเกจซอฟต์แวร์ ในเมนูด้านซ้าย แล้วกดปุ่มรีสตาร์ท (ไอคอนลูกศรวน)
- ตรวจสอบสถานะ: เมื่อรีสตาร์ท Web Server แล้ว ให้ทดสอบเข้าเว็บไซต์ด้วย HTTPS เมื่อตอนนี้เว็บไซต์ควรกลับมาใช้งานปกติ
ข้อควรระวัง
- วิธีแก้นี้ใช้ได้เฉพาะกับใบรับรองที่ ServBay สร้างให้อัตโนมัติเท่านั้น กรณีใช้ใบรับรองที่นำเข้าด้วยตัวเองต้องแก้ไขเอง (หากสูญหายต้องนำไฟล์เดิมกลับมาใหม่หรือขอใหม่แล้วนำเข้าเอง)
- ServBay ใช้ ServBay User CA ในการออกใบรับรองให้เว็บไซต์เพื่อให้รองรับ HTTPS ในเครื่อง หากยังเจอปัญหาใบรับรองไม่ถูกเชื่อถือในเบราว์เซอร์ ให้ตรวจสอบเอกสาร การเชื่อถือ ServBay CA
- ServBay มีระบบสำรองข้อมูลอัตโนมัติสำหรับข้อมูลการตั้งค่าเว็บไซต์และใบรับรอง SSL การสำรองข้อมูลบ่อยจะช่วยให้สามารถกู้คืนข้อมูลได้เมื่อเกิดเหตุไม่คาดคิด
คำถามที่พบบ่อย (FAQ)
Q: ทำไม ServBay จึงออกใบรับรอง SSL อัตโนมัติให้กับเว็บไซต์ในเครื่อง?
A: จุดมุ่งหมายของ ServBay คือการสร้างสภาพแวดล้อมพัฒนาแบบสมบูรณ์ เพื่อจำลองระบบ production ให้สมจริงและช่วยให้นักพัฒนาทดสอบแอปพลิเคชัน HTTPS ได้สะดวก ServBay จึงใช้ ServBay User CA ออกใบรับรอง SSL ให้เว็บไซต์ทุกแห่งโดยอัตโนมัติ
Q: สามารถใช้ใบรับรองที่ขอเองได้หรือไม่?
A: ได้ ServBay รองรับการนำเข้าใบรับรอง SSL ที่ขอมาเอง (เช่นจาก ACME / Let's Encrypt) คำแนะนำนี้ใช้เฉพาะกับใบรับรองที่ ServBay สร้างให้อัตโนมัติ
Q: การเซ็นใบรับรองใหม่ปลอดภัยหรือไม่?
A: ปลอดภัย เพราะใช้ในสภาพแวดล้อมพัฒนาในเครื่องเท่านั้น และใบรับรองที่ออกใหม่โดย ServBay User CA จะใช้สำหรับทดสอบและพัฒนาในเครื่อง ไม่กระทบกับความปลอดภัยบนเว็บไซต์จริงในอินเทอร์เน็ต
สรุป
ServBay มีเครื่องมืออำนวยความสะดวกสำหรับจัดการใบรับรอง SSL ในการพัฒนาเว็บไซต์ในเครื่อง เมื่อใบรับรอง SSL ที่สร้างอัตโนมัติเกิดสูญหาย สามารถใช้ฟีเจอร์ตรวจสอบและออกใบรับรองใหม่อัตโนมัติในไม่กี่ขั้นตอน เพื่อให้เว็บไซต์กลับมาใช้งาน HTTPS ได้อย่างรวดเร็ว
