CLOUD PAAS / APPLICATION SETTINGS

SSL แบบกำหนดเองที่ลงนามด้วยตนเอง

คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ Ruk-Com Cloud PaaS ภาพหน้าจออาจแตกต่างเล็กน้อยตามเวอร์ชันของระบบ

คลิกหรือแตะภาพหน้าจอเพื่อดูรายละเอียดขนาดจริง

วัตถุประสงค์

บทความนี้อธิบายการใช้งาน SSL แบบกำหนดเองที่ลงนามด้วยตนเอง บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง

ก่อนเริ่มดำเนินการ

  • เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
  • ตรวจสอบชื่อ Environment, Region และทรัพยากรเป้าหมายก่อนบันทึกการเปลี่ยนแปลง
  • สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production

วิธีการในการทำให้ แอปพลิเคชั้นของคุณปลอดภัยคือการใช้ การเชื่อมต่อผ่าน SSL-encrypted (Secure Socket Layer) ใน Ruk-Com Cloud คุณสามารถใช้ได้ทั้งของ Ruk-Com SSL และ Custom SSL certificates

ทั้งนี้สำหรับ Custom SSL certificates ทั้งหมดจะต้องขอผ่านบริษัทเกี่ยวกับ Certificate Authority (CA) ยกตัวอย่างเช่นมา Enctypt กันเถอะในกรณี cetificate ของคุณก็จะกลายเป็น cetificate ที่น่าเชื่อถือ หลังจากขอแล้ว เพื่อให้เกิดความน่าเชื่อถือจากผู้อื่นและการเชื่อมต่อไปยังแอปพลิเคชั่นของคุณไม่มีปัญหา

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

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ผู้ใช้งานส่วนใหญ่จะออกจากหน้าเว็บนั้น ดังนั้นเราแนะนำว่าคุณไม่ควรใช้ self-signed-certficates สำหรับแอปพลิเคชั่น production แต่ว่าสามารถใช้งานสำหรับ การพัฒนา/ทดสอบระบบ หรือ เว็บไซต์ส่วนตัวที่เข้ากันเฉพาะกลุ่มเล็ก

ดังนั้น เรามาดูวิธีการสร้าง certificate ในแต่ละแบบ และ วิธีการนำไปใช้งานกับ Ruk-Com Cloud env

การขอ Self-Signed SSL Certificate

สำหรับการขอ self-signed ssl certificate นั้นคุณต้องซื้อโดเมนก่อน

เมื่อสั่งซื้อแล้ว คุณพร้อมที่จะดำเนินการในการสร้าง ssl certificate ของคุณด้วยความช่วยเหลือของเครื่องมือต่างๆ ในตัวอย่างนี้เราจะใช้งาน OpenSSL ทั้งนี้ขึ้นอยู่กับระบบปฎิบัติการที่คุณใช้งาน สามารถดูขั้นตอนการทำต่อไปนี้

  • สำหรับ Windows
  • สำหรับ Linux/MacOS/FreeBSD

คุณยังสามารถสร้างไฟล์ที่ต้องการได้โดยใช้เซิร์ฟเวอร์ส่วนตัวเสมือนแบบยืดหยุ่นของเรา

สำหรับ Windows

ให้คุณดาวน์โหลดOpenSSL เวอร์ชั่นล่าสุด แตกไฟล์และเปิดใช้งานโดยการคลิ๊กสองครั้งที่ไฟล์ openssl.exe หลังจากนั้นไฟล์ที่ถูกสร้างโดย OpenSSL จะปรากฎในโฟลเดอร์เดียวกันกับที่เปิดไฟล์ openssl.exe

  1. ลำดับแรก คุณต้องสร้าง SSH private key สำหรับ root certificate ของคุณ (ใช้ในการขอ certificate ทั้งหมด) ใช้คำสั่งต่อไปนี้
genrsa -out {filename} {length}

{filename} - ชื่อของไฟล์คีย์ที่มี.key ต่อท้าย (ตัวอย่าง rootCA.key)
{length} - ความยาวของ private key เป็นหน่วย bit (ตัวอย่าง 2048)

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
  1. ถัดไปให้คุณสร้างไฟล์ root CA certificate โดยใช้คีย์ที่ได้เตรียมมาในการสร้าง โดยใช้คำสั่ง req กับ ตัวเลือก x509 ในคำสั่งเพื่อให้ออกมาเป็น self-singed root cerificate แทน certificate request
req -config {config_path} -x509 -new -key {keyname} -days {days} -out {filename}

{กำหนดค่า_path} - พาร์ทของ openssl.cnf กำหนดค่าuration file ที่อยู่ใน directory ที่มีไฟล์ OpenSSL ที่แตกออกมา (ระบุตามC:\path\to\openssl.cnfรูปแบบ)
{keyname} - ชื่อ root key ของคุณ (ชื่อที่คุณได้ตั้งไว้ในขั้นตอนก่อนหน้านี้ Ex. rootCA.key)
{day} - จำนวนวันที่ certificate ปัจจุบันจะสามารถใช้งานได้
{filename} - ชื่อของ cetificate ที่เป็น.crt (Ex. rootCA.crt)
ตั้งค่ารายละเอียดที่จำเป็นสำหรับ CA certficate โดยการตอบคำถามตามรายการที่ปรากฎ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หลังจากตอบคำถามทั้งหมดแล้วคุณจะได้รับ self-signed root certificate สำหรับ CA ของคุณเอง

  1. ตอนนี้ คุณสามารถสร้าง private key และ self-signed certificate ของคุณกับ Hostname ที่ซื้อไว้ เริ่มต้นด้วยการสร้าง key เราจะสร้าง key วิธีเดียวกันกับสร้าง root
genrsa -out {filename} {length}

{filename} - ชื่อของไฟล์คีย์ที่มี.key ต่อท้าย (ตัวอย่าง host.key)
{length} - ความยาวของ private key เป็นหน่วย bit (ตัวอย่าง 2048)

หมายเหตุ:คุณไม่ควรป้องกันคีย์ของคุณด้วยรหัสผ่าน มิฉะนั้นจะทำให้คุณได้รับ error ระหว่างที่เพิ่ม key เข้าไปที่หน้าจัดการของ Ruk-Com Cloud

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
  1. ถัดไปรันคำสั่งต่อไปที่นี้สร้างไฟล์ certificate signing request (CSR)
req -config {config_path} -new -key {keyname} -out {filename}

{กำหนดค่า_path} - พาร์ทของ openssl.cnf กำหนดค่าuration file ที่อยู่ใน directory ที่มีไฟล์ OpenSSL ที่แตกออกมา (ระบุตามC:\path\to\openssl.cnfรูปแบบ)
{keyname} - ชื่อ root key ของคุณ (ชื่อที่คุณได้ตั้งไว้ในขั้นตอนก่อนหน้านี้ Ex. host.key)
{filename} - ชื่อขอไฟล์ output ที่เป็น.csr (Ex. host.csr)
ให้คุณตอบคำถามตามรายการที่ปรากฎเพื่อใช้เป็นข้อมูลของคุณในการสร้าง certificate

หมายเหตุ:ตัวแปร Common name ควรเป็นชื่อเดียวกับชื่อโดเมนที่คุณต้องการใช้งาน มิฉะนั้น certificate ของคุณจะไม่สามารถใช้งานได้

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
  1. ขั้นตอนสุดท้าย คือการสร้าง self-signed certificate ของคุณ โดยใช้ root CA certificate เราจะใช้คำสั่ง x509 กับตัวเลือกตามนี้
  2. -req - หมายถึง ต้องการ format ของ input file ที่ใช้ในการขอ certificate
  3. -CAcreateserial - กำหนดค่าเริ่มต้นของการสร้างไฟล์ CA serial number (ถ้าไม่มีไฟล์อยู่)
x509 -req -in {requestname} -CA {CA_certificate} -CAkey {CA_key} -CAcreateserial -out {filename} -days {days}

{requestname} - ชื่อของไฟล์.csr ที่ใช้เป็น input request (Ex. host.csr)
{CA_certificate} - กำหนด CA certificate ที่จะใช้ในการขอ certificate (Ex. rootCA.crt)
{CA_key} - ชุดของ CA private key ที่ใช้กับการขอ certificate (Ex. rootCA.key)
{filename} - ชื่อของไฟล์.crt (Ex. host.crt)
{day} - จำนวนวันที่ certificate ปัจจุบันจะสามารถใช้งานได้

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หลังจากดำเนินการตามขั้นตอนข้างต้นคุณจะมี self-signed SSL certificate สำหรับใช้งานใน application ของคุณแล้ว

สำหรับ Linux/MacOS/FreeBSD

ในกรณีที่คุณยังไม่ได้ติดตั้งเครื่องมือ OpenSSL คุณสามารถติดตั้งได้โดยคำสั่งที่เหมาะสม (ขึ้นอยู่กับ OS package manager ของคุณ) สามารถใช้คำสั่งใน Terminal ของคุณ ยกตัวอย่างเช่นใน Ubuntu/Debian ที่เป็น Linux สามารถใช้คำสั่งตามนี้

sudo apt-get install openssl

เมื่อติดตั้งแล้ว ไฟล์ต่างๆที่เกี่ยวข้องกับ OpenSSL จะแสดงอยู่ใน home directory ของเครื่องของคุณ

  1. ลำดับแรกคุณต้องสร้าง SSH private key สำหรับ root certificate ของคุณ (จะใช้ในการสร้าง certificate ทั้งหมด) สามารถสร้างตามคำสั่งด้านล่างนี้
openssl genrsa -out {filename} {length}

{filename} - ชื่อของคีย์ที่สร้าง.key (Ex. rootCA.key)
{length} - ความยาวของ private key หน่วยเป็น bits (Ex. 2048)

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
  1. ถัดไปคุณควรสร้าง root CA certificate โดยใช้ key ที่เตรียมไว้ โดยใช้ req command โดยใช้ตัวเลือก x509 เพื่อใช้ในการออก self-signed root certificate แทนที่ certificate request
openssl req -x509 -new -key {keyname} -days {days} -out {filename}

{keyname} - ชื่อ root key ของคุณ (ชื่อที่คุณได้ตั้งไว้ในขั้นตอนก่อนหน้านี้ Ex. rootCA.key)
{day} - จำนวนวันที่ certificate ปัจจุบันจะสามารถใช้งานได้
{filename} - ชื่อของ cetificate ที่เป็น.crt (Ex. rootCA.crt)
ตั้งค่ารายละเอียดที่จำเป็นสำหรับ CA certficate โดยการตอบคำถามตามรายการที่ปรากฎ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หลังจากใช้คำสั่งข้างต้นแล้วจะได้ self-signed root certificate สำหรับ CA ของคุณ

  1. ตอนนี้คุณสามารถสร้าง private key และ self-signed certificate สำหรับโดเมนที่คุณซื้อมา เรามาเริ่มสร้าง key โดยการสร้างวิธีเดียวกันกับการสร้าง root
openssl genrsa -out {filename} {length}

{filename} - ชื่อของคีย์ที่สร้าง.key (Ex. host.key)
{length} - ความยาวของ private key หน่วยเป็น bits (Ex. 2048)

หมายเหตุ:คุณไม่ควรป้องกันคีย์ของคุณด้วยรหัสผ่าน มิฉะนั้นจะทำให้คุณได้รับ error ระหว่างที่เพิ่ม key เข้าไปที่หน้าจัดการของ Ruk-Com Cloud

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
  1. ถัดไปรันคำสั่งต่อไปที่นี้สร้างไฟล์ certificate signing request (CSR)
openssl req -new -key {keyname} -out {filename}

{keyname} - ชื่อ root key ของคุณ (ชื่อที่คุณได้ตั้งไว้ในขั้นตอนก่อนหน้านี้ Ex. host.key)
{filename} - ชื่อขอไฟล์ output ที่เป็น.csr (Ex. host.csr)
ให้คุณตอบคำถามตามรายการที่ปรากฎเพื่อใช้เป็นข้อมูลของคุณในการสร้าง certificate

หมายเหตุ:ตัวแปร Common name ควรเป็นชื่อเดียวกับชื่อโดเมนที่คุณต้องการใช้งาน มิฉะนั้น certificate ของคุณจะไม่สามารถใช้งานได้

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
  1. ขั้นตอนสุดท้าย คือการสร้าง self-signed certificate ของคุณ โดยใช้ root CA certificate เราจะใช้คำสั่ง x509 กับตัวเลือกตามนี้
  2. -req - หมายถึง ต้องการ format ของ input file ที่ใช้ในการขอ certificate
  3. -CAcreateserial - กำหนดค่าเริ่มต้นของการสร้างไฟล์ CA serial number (ถ้าไม่มีไฟล์อยู่)
openssl x509 -req -in {requestname} -CA {CA_certificate} -CAkey {CA_key} -CAcreateserial -out {filename} -days {days}

{requestname} - ชื่อของไฟล์.csr ที่ใช้เป็น input request (Ex. host.csr)
{CA_certificate} - กำหนด CA certificate ที่จะใช้ในการขอ certificate (Ex. rootCA.crt)
{CA_key} - ชุดของ CA private key ที่ใช้กับการขอ certificate (Ex. rootCA.key)
{filename} - ชื่อของไฟล์.crt (Ex. host.crt)
{day} - จำนวนวันที่ certificate ปัจจุบันจะสามารถใช้งานได้

หลังจากดำเนินการตามขั้นตอนข้างต้นคุณจะมี self-signed SSL certificate สำหรับใช้งานใน application ของคุณแล้ว

VPS แบบยืดหยุ่น

คุณสามารถสร้าง self-signed certificate โดยใช้ Elastic VPS server สามารถดำเนินการได้ดังนี้

  • สร้าง environment ที่มี Elastic VPS ภายใน
  • เชื่อมต่อ Elastic vps ด้วยวิธีที่ต้องการ (ใช้ Public IP หรือ ใช้ผ่าน SSH Gateway)
  • เข้า OpenSSL shell ด้วยคำสั่ง openssl ที่เกี่ยวข้อง
  • สร้าง self-signed certificate ตามขั้นตอนนี้ลินุกซ์/MacOS/FreeBSD(ข้อแตกต่างเพียงอย่างเดียวคือคำสั่งทั้งหมดควรดำเนินการโดยไม่มีคำ openssl ที่จุดเริ่มต้นเนื่องจากคุณอยู่ในเชลล์ OpenSSL แล้ว)
  • เมื่อดำเนินการสร้างเสร็จสิ้นคุณจะต้องดาวน์โหลดไฟล์ certificate ที่สร้างขึ้น (เช่นผ่าน Configuration File Manager) เพื่อนำไปใช้กับ environment ที่ต้องการใช้งานในภายหลังได้

แนบใบรับรอง

ตอนนี้ ทำตามขั้นตอนสำหรับการอัปโหลด SSL แบบกำหนดเองอื่น ๆ

  • ปรับโทโพโลยีสภาพแวดล้อม
  • ชื่อโดเมนและการตั้งค่าบันทึก
  • อัปโหลดใบรับรองสู่สิ่งแวดล้อม

เมื่อดำเนินการครบแล้ว หากคุณใส่ชื่อโดเมนของคุณที่กำหนดไว้ ( หรือเรียกใช้งานผ่าน ip ) ลงไปที่เบราว์เซอร์ของคุณโดยใช้โปรโตคอล https:// คุณจะเห็นข้อความแจ้งเตือนให้คุณทราบว่า SSL certificate ของคุณไม่น่าเชื่อถือ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

เมื่อพบการแจ้งเตือนให้กดไปที่ "Process anyway" เพื่อดำเนินการต่อไป (หรือปุ่มที่คล้ายกันขึ้นอยู่กับเบราว์เซอร์ของคุณ)

หมายเหตุ:สำหรับบางเบราว์เซอร์ (เช่น Mozilla FireFox) แม้ว่าคุณจะตัดสินใจดำเนินการต่อคุณจำเป็นต้องเพิ่มหน้านี้ในรายการข้อยกเว้นของเบราว์เซอร์ก่อนจึงจะดำเนินการต่อได้

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หลังจากนั้นคุณจะถูกเปลี่ยนเส้นทางไปยังไซต์ของคุณผ่านโปรโตคอลที่เข้ารหัส

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

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