วิธีการสร้าง Self-Signed SSL Certificate สำหรับการทดสอบแอปเว็บโดยใช้ Apache
ในฐานะนักพัฒนาเว็บ คุณทราบถึงความสำคัญของการทดสอบแอปพลิเคชันของคุณในสภาพแวดล้อมที่ปลอดภัย หนึ่งในข้อกำหนดทั่วไปในระหว่างการพัฒนาคือการใช้ HTTPS ประกอบกับการใช้ใบรับรอง SSL แม้ว่าชุด SSL สาธารณะจะมีความสำคัญสำหรับเว็บไซต์ที่ใช้งานจริง แต่ self-signed SSL certificate
นั้นสามารถใช้ได้ดีสำหรับการทดสอบแอปของคุณ ในโพสต์บล็อกนี้ เราจะพูดคุยเกี่ยวกับขั้นตอนที่จำเป็นในการสร้างใบรับรองนี้โดยเฉพาะสำหรับการใช้งานกับเซิร์ฟเวอร์ Apache
ทำไมต้องใช้ Self-Signed SSL Certificate?
self-signed SSL certificate เป็นเครื่องมือการเข้ารหัสที่คุณสร้างขึ้นเองแทนที่จะขอรับจากหน่วยงานรับรองความเชื่อถือ (Certificate Authority - CA) ที่เชื่อถือได้ ซึ่งอาจมีประโยชน์โดยเฉพาะสำหรับ:
- การพัฒนาและการทดสอบ: ช่วยให้คุณสามารถทดสอบฟังก์ชัน HTTPS โดยไม่ต้องใช้ค่าใช้จ่ายในการขอจาก CA
- แอปพลิเคชันภายใน: มีประโยชน์สำหรับแอปที่ไม่ได้เปิดเผยต่อสาธารณะ
อย่างไรก็ตาม สิ่งสำคัญคือต้องทราบว่าเนื่องจากใบรับรองนี้ไม่ได้ถูกลงนามโดย CA ที่เชื่อถือได้ เบราว์เซอร์จะแสดงคำเตือนด้านความปลอดภัยเมื่อเข้าถึง ดังนั้น การใช้งานจึงจำกัดอยู่ที่สภาพแวดล้อมการพัฒนาและการทดสอบ
ขั้นตอนการสร้าง Self-Signed SSL Certificate
การสร้าง self-signed SSL certificate ประกอบด้วยหลายขั้นตอนที่ชัดเจน ซึ่งคุณสามารถทำตามได้ดังนี้ ก่อนอื่นให้แน่ใจว่าคุณติดตั้ง OpenSSL
บนระบบของคุณและพร้อมใช้งานในเส้นทางบรรทัดคำสั่งของคุณ
ขั้นตอนที่ 1: ตรวจสอบการติดตั้ง OpenSSL
- ตรวจสอบว่า OpenSSL ติดตั้งอยู่หรือไม่โดยการพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:
openssl version
- หาก OpenSSL ไม่ได้รับการติดตั้ง ให้ปฏิบัติตามคำแนะนำการติดตั้งสำหรับระบบปฏิบัติการของคุณเพื่อดำเนินการติดตั้ง
ขั้นตอนที่ 2: สร้างใบรับรองและกุญแจ
ถัดไป คุณจะสร้างใบรับรองที่เซ็นชื่อด้วยตนเอง และกุญแจส่วนตัวที่ตรงกัน นี่คือวิธีการทำ:
- เปิดเทอร์มินัลของคุณและรันคำสั่งด้านล่าง:
openssl req -new -x509 -nodes -out server.crt -keyout server.key
- คำสั่งนี้จะสร้างไฟล์สองไฟล์:
server.crt
และserver.key
ซึ่งคุณจะต้องกำหนดค่าในไฟล์การกำหนดค่าของเซิร์ฟเวอร์ Apache ของคุณ
ขั้นตอนที่ 3: การกำหนดค่า Apache
เมื่อคุณมีไฟล์ใบรับรองและกุญแจ คุณต้องบอก Apache ให้ใช้พวกมัน คุณสามารถทำได้โดยการแก้ไขไฟล์การกำหนดค่า Apache ของคุณ โดยทั่วไปจะอยู่ที่ /etc/httpd/conf/httpd.conf
หรือ /etc/apache2/sites-available/default-ssl.conf
- เพิ่มเส้นทางของใบรับรองและกุญแจใหม่ของคุณ ลงในไฟล์การกำหนดค่า โดยมีรูปแบบการกำหนดค่าดังนี้:
SSLCertificateFile /path/to/server.crt SSLCertificateKeyFile /path/to/server.key
ขั้นตอนที่ 4: ปกป้องกุญแจด้วยรหัสผ่าน (ไม่บังคับ)
หากคุณต้องการเพิ่มชั้นความปลอดภัยให้กับกุญแจส่วนตัวของคุณด้วยการใช้รหัสผ่าน คุณสามารถทำได้ด้วยคำสั่งต่อไปนี้:
- รันคำสั่งนี้ในเทอร์มินัล:
openssl rsa -des3 -in server.key -out server.key.new
- ย้ายไฟล์กุญแจใหม่กลับไปแทนที่ไฟล์เก่า:
mv server.key.new server.key
- อย่าลืมสำรองไฟล์
server.key
ตัวเดิมของคุณและจำรหัสผ่านที่คุณตั้งไว้
ข้อคิดสุดท้าย
ขอแสดงความยินดี! คุณได้สร้าง self-signed SSL certificate สำหรับเซิร์ฟเวอร์ Apache ของคุณสำเร็จแล้ว ใบรับรองนี้จะช่วยให้คุณสามารถสร้างสภาพแวดล้อมการพัฒนาที่ปลอดภัยสำหรับการทดสอบแอปพลิเคชันเว็บของคุณ จำไว้ว่าหมายเลขรับรองที่เซ็นชื่อด้วยตนเองไม่ควรใช้งานในสภาพแวดล้อมการผลิต
เมื่อเข้าถึงแอปพลิเคชันเว็บใน localhost ที่มีการรักษาความปลอดภัยด้วยใบรับรองนี้ คุณอาจเผชิญกับคำเตือนด้านความปลอดภัยในเบราว์เซอร์ของคุณ ซึ่งเป็นพฤติกรรมที่คาดหมายได้ เนื่องจากมันถูกเซ็นชื่อด้วยตนเองและไม่ได้รับการรับรองโดย CA ที่เชื่อถือได้ เพียงเลือกที่จะดำเนินการต่อ คุณก็จะสามารถทดสอบแอปพลิเคชันของคุณได้อย่างปลอดภัย
หากคุณมีคำถามหรือต้องการความช่วยเหลือเพิ่มเติม โปรดทิ้งความคิดเห็นของคุณไว้ด้านล่าง! โค้ดดีนะ!