การใช้งาน SSL Certificate จากองค์กรรับรอง (CA) ภายนอกใน ServBay
หากคุณต้องการจำลองสภาพแวดล้อมการผลิตในการพัฒนา/ทดสอบเว็บไซต์ภายในเครื่อง การใช้ SSL Certificate ที่ออกโดยองค์กรรับรอง (CA) ที่เชื่อถือได้ จะทำให้เว็บไซต์ของคุณเข้าถึงผ่าน HTTPS ได้อย่างปลอดภัย สิ่งนี้สำคัญมากสำหรับการทดสอบฟีเจอร์ที่ต้องการ HTTPS หรือเพื่อให้สภาพแวดล้อมภายในคล้ายกับการใช้งานจริงมากที่สุด บทความนี้จะแนะนำวิธีการตั้งค่า SSL Certificate ที่ออกให้โดยองค์กรภายนอกในสภาพแวดล้อมพัฒนาเว็บของ ServBay
โปรดทราบ
SSL Certificate ที่ออกโดย CA ภายนอกโดยส่วนใหญ่จะรองรับแค่โดเมนมาตรฐาน (เช่น .com
, .org
, .net
, .cn
ฯลฯ) เท่านั้น ไม่รองรับโดเมนที่เป็น suffix กำหนดเอง (เช่น .local
, .test
, .demo
ฯลฯ) เนื่องจากไม่สามารถตรวจสอบโดเมนเหล่านี้ได้แบบสาธารณะ หากคุณใช้โดเมนเหล่านี้สำหรับการพัฒนาแนะนำให้ใช้ฟีเจอร์ ServBay User CA หรือ ServBay Public CA ในการออกใบรับรอง SSL ในท้องถิ่นที่เชื่อถือได้แทน
กรณีนำไปใช้
- จำลองสภาพแวดล้อมการผลิต: ตั้งค่า HTTPS ให้เหมือนกับเซิร์ฟเวอร์จริงมากที่สุด และทดสอบการทำงานของเว็บไซต์ภายใต้ HTTPS
- ทดสอบฟีเจอร์ที่ต้องใช้ HTTPS: เช่น การเรียกใช้ API ที่ต้องการ Secure Context, ใช้งาน Service Worker, Web Crypto API หรือ Geolocation ในเบราว์เซอร์
- พัฒนา API ภายในเครื่อง: ตั้งค่า HTTPS ให้ API Back-End ที่พัฒนาในเครื่อง ช่วยให้ Front-End เรียกใช้งานผ่าน HTTPS ได้ง่าย
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้นโปรดตรวจสอบว่าคุณมีสิ่งต่อไปนี้เรียบร้อยแล้ว
- ติดตั้งและรัน ServBay บน macOS เรียบร้อย
- ใช้งาน Terminal และคำสั่งได้ในระดับเบื้องต้น
- เครื่องมีเครื่องมือ OpenSSL (macOS ส่วนใหญ่มีให้แล้ว)
ขั้นตอนที่ 1: ขอ SSL Certificate จากองค์กรภายนอก
อันดับแรก คุณต้องขอ SSL Certificate จากองค์กรรับรอง (CA) ภายนอกที่เชื่อถือได้ เช่น Let's Encrypt, DigiCert, GlobalSign, Sectigo เป็นต้น ในขั้นตอนนี้จะต้องสร้าง Certificate Signing Request (CSR) ขึ้นมาก่อน นี่คือขั้นตอนสำคัญในการขอใบรับรอง
สร้าง Private Key
Private Key คือไฟล์ลับสำหรับถอดรหัสข้อมูล SSL ให้กับเซิร์ฟเวอร์ของคุณ ต้องเก็บรักษาไว้อย่างปลอดภัย และอย่าเปิดเผยให้ผู้อื่นทราบ ใช้คำสั่ง OpenSSL ใน Terminal เพื่อสร้าง Private Key แบบ RSA ดังนี้
shopenssl genpkey -algorithm RSA -out servbay.demo.key -pkeyopt rsa_keygen_bits:2048
1openssl genpkey
: คำสั่ง OpenSSL สำหรับสร้าง private key-algorithm RSA
: กำหนด algorithm ของ key เป็น RSA-out servbay.demo.key
: กำหนดชื่อไฟล์ private key ที่จะสร้าง-pkeyopt rsa_keygen_bits:2048
: กำหนดขนาดความยาวของ RSA key เป็น 2048 บิต (เป็นขนาดมาตรฐานที่แนะนำเพื่อความปลอดภัย)
สร้าง Certificate Signing Request (CSR)
CSR คือไฟล์ที่บรรจุ public key และข้อมูลที่จำเป็นสำหรับการขอใบรับรอง คุณต้องส่งไฟล์นี้ให้กับ CA ใช้ private key ที่สร้างไว้ในขั้นตอนก่อนหน้าสร้าง CSR ได้ด้วยคำสั่ง
shopenssl req -new -key servbay.demo.key -out servbay.demo.csr
1openssl req
: คำสั่งสำหรับสร้าง CSR-new
: ระบุว่าสร้าง CSR ใหม่-key servbay.demo.key
: ใช้ไฟล์ private key สำหรับลงลายมือชื่อ-out servbay.demo.csr
: กำหนดชื่อไฟล์ CSR ที่จะได้
เมื่อรันคำสั่ง ระบบจะถามข้อมูลต่าง ๆ สำหรับกรอกลงใน CSR ให้ใส่ข้อมูลตามความเป็นจริงหรือคู่มือของ CA เช่นตัวอย่างนี้
Country Name (2 letter code) [AU]:CN # รหัสประเทศ เช่น CN (จีน), US (สหรัฐอเมริกา) State or Province Name (full name) [Some-State]:Hong Kong # ชื่อรัฐ/จังหวัด Locality Name (eg, city) []:Kowloon # ชื่อเมือง Organization Name (eg, company) [Internet Widgits Pty Ltd]:ServBay # ชื่อองค์กร/บริษัท Organizational Unit Name (eg, section) []:Development # หน่วยงาน (ไม่ระบุก็ได้) Common Name (e.g. server FQDN or YOUR name) []:servbay.demo # **สำคัญ: กรอกโดเมน FQDN ที่จะขอใบรับรอง** Email Address []:[email protected] # อีเมลติดต่อ (ไม่กรอกได้) Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: # รหัสผ่านความท้าทาย (เว้นว่าง) An optional company name []: # ชื่อองค์กรเพิ่มเติม (เว้นว่าง)
1
2
3
4
5
6
7
8
9
10
11
12ตรวจสอบให้แน่ใจว่า
Common Name
ระบุชื่อโดเมนหลักที่ใช้กับเว็บไซต์ใน ServBay เช่นservbay.demo
หากคุณต้องขอใบรับรองแบบหลายโดเมน (Multi-domain หรือ SAN Certificate) โดยทั่วไป CA จะมีวิธีเพิ่มโดเมนเหล่านั้นในขั้นตอนขอใบรับรอง หรือใช้เครื่องมือออนไลน์ของ CAส่ง CSR เพื่อขอรับ SSL Certificate
ให้นำไฟล์
servbay.demo.csr
ที่ได้ไปคัดลอกหรืออัปโหลดไปยังหน้าเว็บไซต์ของ CA ที่คุณเลือก แล้วดำเนินตามขั้นตอนยืนยันสิทธิ์ในโดเมน (เช่นผ่าน DNS, การสร้างไฟล์ HTTP, หรือยืนยันทางอีเมล) เมื่อผ่านแล้ว CA จะออกใบรับรองและส่งไฟล์ใบรับรองให้คุณ โดยทั่วไปจะมีไฟล์ดังต่อไปนี้- ไฟล์ใบรับรองหลักของคุณ เช่น
servbay.demo.crt
หรือservbay.demo.pem
- ไฟล์ Intermediate Certificate 1 ชุด (certificate chain) เช่น
intermediate.crt
หรือca-bundle.crt
- ไฟล์ Root Certificate (ปกติไม่ต้องลงเพิ่ม เพราะระบบปฏิบัติการ/เบราว์เซอร์ไว้วางใจอยู่แล้ว)
- ไฟล์ใบรับรองหลักของคุณ เช่น
ขั้นตอนที่ 2: ตั้งค่าใบรับรองจาก CA ภายนอกใน ServBay
เมื่อได้รับใบรับรองที่ออกโดย CA แล้ว ต่อไปคือการนำเข้าข้อมูลเหล่านี้มาที่ ServBay เพื่อตั้งค่าใช้งานกับเว็บไซต์
ServBay แนะนำให้นำไฟล์ใบรับรองและ private key มาวางไว้ที่โฟลเดอร์ /Applications/ServBay/ssl/import/tls-certs/
เพื่อความเป็นระเบียบและสะดวกต่อการจัดการ
ย้ายไฟล์ใบรับรองและ private key ไปยังโฟลเดอร์ที่กำหนด
ให้นำไฟล์ private key (
servbay.demo.key
), ใบรับรองหลัก (servbay.demo.crt
) และ intermediate certificates เช่นintermediate.crt
ไปวางที่โฟลเดอร์ของ ServBay ดังนี้shmv servbay.demo.key /Applications/ServBay/ssl/import/tls-certs/ mv servbay.demo.crt /Applications/ServBay/ssl/import/tls-certs/ # หากมีไฟล์ chain/intermediate อื่นเพิ่ม ให้ย้ายด้วย mv intermediate.crt /Applications/ServBay/ssl/import/tls-certs/ # หากมี intermediate certificate อื่น ๆ ให้ย้ายเช่นกัน # mv another_intermediate.crt /Applications/ServBay/ssl/import/tls-certs/
1
2
3
4
5
6รวมไฟล์ intermediate เข้าไปในไฟล์ใบรับรองหลัก
เพื่อให้ Browser ตรวจสอบ chain ของใบรับรองได้ครบ ให้เพิ่มเนื้อหาของ intermediate certificates ต่อท้ายในไฟล์ใบรับรองหลักที่ใช้ (เช่น
servbay.demo.crt
) โดยเรียงตามลำดับที่ CA แจ้ง เช่นshcat intermediate.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt
1หากมี intermediate certificates หลายไฟล์ ให้ต่อเนื่องตามลำดับ เช่น
intermediate1.crt
แล้วตามด้วยintermediate2.crt
shcat intermediate1.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt cat intermediate2.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt
1
2หลังจากรวมเสร็จแล้ว
servbay.demo.crt
จะมีทั้งใบรับรองหลักและ chain ของ intermediate ครบถ้วนเปิดแผงควบคุม ServBay
เปิดแอปพลิเคชัน ServBay แล้วคลิกไอคอนใน menu bar หรือ dock เพื่อเข้าสู่หน้าจัดการ
เพิ่ม/แก้ไขเว็บไซต์
ในเมนูด้านซ้ายมือในแผงควบคุม ServBay เลือก
เว็บไซต์
- หากต้องการเพิ่มเว็บไซต์ใหม่ กดปุ่ม
+
ที่มุมขวาบน - หากต้องการปรับแต่งเว็บไซต์เดิม คลิกเลือกเว็บไซต์ แล้วกดปุ่มแก้ไข (ไอคอนดินสอ)
- หากต้องการเพิ่มเว็บไซต์ใหม่ กดปุ่ม
ตั้งค่า SSL Certificate
ที่ส่วน SSL ของหน้าตั้งค่าเว็บไซต์ จะมีตัวเลือกวิธีออกใบรับรอง เลือก
Custom
(กำหนดเอง)- Certificate Key File (ไฟล์ Private Key): กดปุ่มเลือกไฟล์แล้วไปที่โฟลเดอร์
/Applications/ServBay/ssl/import/tls-certs/
เลือกไฟล์ key ที่นำเข้ามา เช่นservbay.demo.key
- Certificate File (ไฟล์ใบรับรอง): กดปุ่มเลือกไฟล์ไปที่โฟลเดอร์เดียวกัน เลือกไฟล์ crt ที่รวม intermediate เรียบร้อยแล้ว เช่น
servbay.demo.crt
(หมายเหตุ: เส้นทางรูปภาพด้านบนเป็นตัวอย่าง อาจต้องปรับเปลี่ยนตามเว็บไซต์เอกสารจริง)
- Certificate Key File (ไฟล์ Private Key): กดปุ่มเลือกไฟล์แล้วไปที่โฟลเดอร์
กำหนดโดเมนและ Document Root
ตรวจสอบที่หน้าตั้งค่าเว็บไซต์ ให้กรอกชื่อโดเมนหลักไว้ในฟิลด์
Domain
ให้ตรงกับที่ระบุในตอนขอใบรับรอง เช่นservbay.demo
และใส่พาธของเว็บไซต์ในช่องDocument Root
เช่น/Applications/ServBay/www/servbay.demo
บันทึกและนำไปใช้
เมื่อกรอกข้อมูลครบ กดปุ่มบันทึกการตั้งค่า ServBay จะถามให้นำการเปลี่ยนแปลงไปใช้และรีสตาร์ท Web Server ที่เกี่ยวข้อง (Caddy, Nginx, Apache ฯลฯ) ให้กดยืนยัน
การตรวจสอบการตั้งค่า
หลังตั้งค่าทั้งหมดแล้ว ทดสอบเข้าเยี่ยมชมเว็บไซต์ผ่านเบราว์เซอร์โดยใช้ URL เช่น https://servbay.demo
หากทุกอย่างถูกต้อง คุณจะเห็นไอคอนรูปกุญแจบนแถบที่อยู่ เมื่อกดดูรายละเอียดใบรับรองจะพบว่านำเข้า CA ที่ถูกต้อง และ certificate chain ครบ
หากพบปัญหา สามารถตรวจสอบดังนี้
- ชื่อโดเมนตรงกับ Common Name หรือ SAN ในใบรับรองหรือไม่
- พาธไฟล์ private key และ certificate ถูกต้องหรือไม่
- ไฟล์ใบรับรองมีเนื้อหา intermediate chain ครบและเรียงถูกไหม
- การตั้งค่าเว็บไซต์ใน ServBay บันทึกเรียบร้อยและนำไปใช้แล้ว
- ระบบปฏิบัติการไว้วางใจ root CA ที่ออกใบรับรองนี้หรือไม่ (ปกติเกือบทุก CA หลักจะเชื่อถือโดย OS/Browser ใหญ่แล้ว)
หมายเหตุ
- ชื่อโดเมนต้องตรง: ใบรับรองที่นำเข้าต้องตรงกับโดเมนที่ระบุในฟิลด์ตั้งค่าของเว็บไซต์ (รวมถึง subdomain หากเป็น Wildcard)
- ระยะเวลาของใบรับรอง: SSL Certificate จากภายนอกจะมีอายุ คุณต้องต่ออายุและนำเข้าไฟล์ใหม่ตามขั้นตอนเดิมเมื่อใกล้หมดอายุ
- Private Key สำคัญมาก: ไฟล์
.key
จัดเก็บเป็นความลับ ป้องกันการรั่วไหล - ตัวเลือก SSL อื่นที่ ServBay มีให้: นอกจากนำเข้าเองแล้ว ServBay ยังอำนวยความสะดวก SSL ได้หลายแบบ เช่น
- ServBay User CA / Public CA: สำหรับออกใบรับรองพัฒนาในเครื่อง รองรับทุกโดเมน
- ACME (Let's Encrypt): สำหรับโดเมนมาตรฐาน ServBay สามารถเชื่อมต่อขอ-ต่ออายุใบรับรองกับ Let's Encrypt ได้อัตโนมัติ วิธีในบทความนี้เหมาะกับผู้ที่รับใบรับรองจากที่อื่นมาและต้องการนำเข้าใช้งานเอง
คำถามที่พบบ่อย (FAQ)
Q1: ถ้าได้รับไฟล์ใบรับรอง .pfx
หรือ .p12
จะนำเข้าใช้งานกับ ServBay อย่างไร?
A1: .pfx
หรือ .p12
มักรวบรวม private key และ certificate chain อยู่ในไฟล์เดียว คุณสามารถใช้ OpenSSL แยกออกเป็นไฟล์ .key
(private key) และ .crt
(certificate) ได้ เช่น
sh
openssl pkcs12 -in your_certificate.pfx -nocerts -out your_private_key.key -nodes
openssl pkcs12 -in your_certificate.pfx -clcerts -nokeys -out your_certificate.crt
1
2
2
หลังจาก export แล้ว อาจต้องนำ chain ที่ CA ให้มามารวมต่อท้ายไฟล์ .crt
ตามวิธีที่อธิบายในขั้นตอนที่ 2
Q2: ตั้งค่าทุกอย่างแล้วแต่ยังขึ้นเตือน "การเชื่อมต่อไม่ปลอดภัย" ในเบราว์เซอร์?
A2: ตรวจสอบดังนี้
- ชื่อโดเมน: ที่ใช้เข้าถึงตรงกับใบรับรองหรือไม่
- Certificate chain ครบ: ไฟล์
.crt
รวม intermediate ถูกต้องและเรียงลำดับหรือไม่ แนะนำใช้เครื่องมือ online ตรวจสอบ SSL chain - ServBay รีสตาร์ทแล้วหรือยัง: ตั้งค่าและรีเฟรช Web Server ในแอป ServBay แล้วจริงหรือไม่
- Cache เบราว์เซอร์: ลองเคลียร์ cache หรือใช้ incognito mode
- ระบบปฏิบัติการไว้วางใจ CA หรือไม่: ตรวจดูว่า CA ที่ออกใบรับรองนี้ ถูกรับรองโดยระบบปฏิบัติการแล้ว
สรุป
ดีตามขั้นตอนนี้ คุณจะตั้งค่าและใช้งาน SSL Certificate ที่ออกให้โดยองค์กรรับรอง (CA) ภายนอกกับ ServBay ได้สำเร็จ ซึ่งช่วยให้จำลอง HTTPS ของระบบจริงบนเครื่องได้อย่างแม่นยำ เหมาะสำหรับการพัฒนาและทดสอบอย่างมืออาชีพ แม้ว่า ServBay จะมีทางเลือกอัตโนมัติ (ACME, ServBay CA) ให้ใช้ง่ายกว่า แต่การรู้วิธีนำเข้า certificate แบบ "กำหนดเอง" (Custom) ก็ยังสำคัญสำหรับกรณีความต้องการเฉพาะหรือกรณีนำ certificate ที่มีอยู่เดิมมาใช้งานใหม่