วิธีการสร้าง 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

  1. ตรวจสอบว่า OpenSSL ติดตั้งอยู่หรือไม่โดยการพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:
    openssl version
    
  2. หาก OpenSSL ไม่ได้รับการติดตั้ง ให้ปฏิบัติตามคำแนะนำการติดตั้งสำหรับระบบปฏิบัติการของคุณเพื่อดำเนินการติดตั้ง

ขั้นตอนที่ 2: สร้างใบรับรองและกุญแจ

ถัดไป คุณจะสร้างใบรับรองที่เซ็นชื่อด้วยตนเอง และกุญแจส่วนตัวที่ตรงกัน นี่คือวิธีการทำ:

  1. เปิดเทอร์มินัลของคุณและรันคำสั่งด้านล่าง:
    openssl req -new -x509 -nodes -out server.crt -keyout server.key
    
  2. คำสั่งนี้จะสร้างไฟล์สองไฟล์: server.crt และ server.key ซึ่งคุณจะต้องกำหนดค่าในไฟล์การกำหนดค่าของเซิร์ฟเวอร์ Apache ของคุณ

ขั้นตอนที่ 3: การกำหนดค่า Apache

เมื่อคุณมีไฟล์ใบรับรองและกุญแจ คุณต้องบอก Apache ให้ใช้พวกมัน คุณสามารถทำได้โดยการแก้ไขไฟล์การกำหนดค่า Apache ของคุณ โดยทั่วไปจะอยู่ที่ /etc/httpd/conf/httpd.conf หรือ /etc/apache2/sites-available/default-ssl.conf

  1. เพิ่มเส้นทางของใบรับรองและกุญแจใหม่ของคุณ ลงในไฟล์การกำหนดค่า โดยมีรูปแบบการกำหนดค่าดังนี้:
    SSLCertificateFile    /path/to/server.crt
    SSLCertificateKeyFile /path/to/server.key
    

ขั้นตอนที่ 4: ปกป้องกุญแจด้วยรหัสผ่าน (ไม่บังคับ)

หากคุณต้องการเพิ่มชั้นความปลอดภัยให้กับกุญแจส่วนตัวของคุณด้วยการใช้รหัสผ่าน คุณสามารถทำได้ด้วยคำสั่งต่อไปนี้:

  1. รันคำสั่งนี้ในเทอร์มินัล:
    openssl rsa -des3 -in server.key -out server.key.new
    
  2. ย้ายไฟล์กุญแจใหม่กลับไปแทนที่ไฟล์เก่า:
    mv server.key.new server.key
    
  3. อย่าลืมสำรองไฟล์ server.key ตัวเดิมของคุณและจำรหัสผ่านที่คุณตั้งไว้

ข้อคิดสุดท้าย

ขอแสดงความยินดี! คุณได้สร้าง self-signed SSL certificate สำหรับเซิร์ฟเวอร์ Apache ของคุณสำเร็จแล้ว ใบรับรองนี้จะช่วยให้คุณสามารถสร้างสภาพแวดล้อมการพัฒนาที่ปลอดภัยสำหรับการทดสอบแอปพลิเคชันเว็บของคุณ จำไว้ว่าหมายเลขรับรองที่เซ็นชื่อด้วยตนเองไม่ควรใช้งานในสภาพแวดล้อมการผลิต

เมื่อเข้าถึงแอปพลิเคชันเว็บใน localhost ที่มีการรักษาความปลอดภัยด้วยใบรับรองนี้ คุณอาจเผชิญกับคำเตือนด้านความปลอดภัยในเบราว์เซอร์ของคุณ ซึ่งเป็นพฤติกรรมที่คาดหมายได้ เนื่องจากมันถูกเซ็นชื่อด้วยตนเองและไม่ได้รับการรับรองโดย CA ที่เชื่อถือได้ เพียงเลือกที่จะดำเนินการต่อ คุณก็จะสามารถทดสอบแอปพลิเคชันของคุณได้อย่างปลอดภัย

หากคุณมีคำถามหรือต้องการความช่วยเหลือเพิ่มเติม โปรดทิ้งความคิดเห็นของคุณไว้ด้านล่าง! โค้ดดีนะ!