Custom SSL

การสนับสนุนใบรับรอง SSL ให้ระดับความปลอดภัยที่สำคัญสำหรับชื่อโดเมนของคุณ ด้วย Ruk-com cloud PaaS ทำให้แอปพลิเคชันที่ต้องการ SSL จะกลายเป็นเรื่องง่าย

นอกจาก Built-in SSL และ Let’s Encrypt SSL แล้ว Ruk-com cloud PaaS ยังให้ความสามารถในการอัปโหลดและใช้ใบรับรอง SSL ที่กำหนดเองกับ environment ของคุณ Ruk-com cloud รองรับใบรับรองประเภทต่อไปนี้:

  • Self-signed
  • Wildcard
  • Multi-Domain
  • Extended validation single domain
  • Extended validation multi-domain
  • Low assurance/domain-validated certificate

ในคำแนะนำนี้ เราจะแสดงวิธีรับใบรับรอง SSL แบบกำหนดเองโดเมนเดียวที่เปิดใช้งานใน environment ของคุณ

สร้าง Custom SSL Certificate

ในการเพิ่มใบรับรอง SSL แบบกำหนดเองในสภาพแวดล้อม Ruk-com cloud คุณต้องมี:

  • domain name ที่ซื้อไว้แล้ว
  • server key
  • intermediate certificate or certificates chain (CA)
  • domain certificate

Note: หากคุณซื้อ Domain name ที่มาพร้อมกับใบรับรอง SSL ไม่จำเป็นต้องทำตามขั้นตอนต่อจากนี้ เนื่องจากผู้ขายได้ทำมาให้พร้อมใช้งานแล้วให้ข้ามไปที่ (ปรับแต่ง Environment Topology เพื่อรองรับ Custom SSL)

ขั้นตอนต่อไปให้ทำตามคำแนะนำต่อไปนี้:

1. ซื้อ Domain Name (ตัวอย่าง mysite.com) โดยจัดกับบริษัทไหนก็ได้

2. สร้าง server key สำหรับ domain name ที่ซื้อมา และสร้างคำร้องสำหรับใบรับรองโดยใช้เครื่องมีที่ถนัด

เราจะใช้ OpenSSL เป็นตัวอย่างในการทำการร้องขอใบรับรอง จะขึ้นอยู่กับ OS ที่คุณใช้ ตามขั้นตอนต่อไปนี้

วิธีขอใบรับรองสำหรับ Windows

ดาวน์โหลดเครื่องมือ OpenSSL เวอร์ชันล่าสุด แตกไฟล์ และเรียกใช้เครื่องมือโดยดับเบิลคลิกไฟล์ openssl.exe ในโฟลเดอร์ bin ต่อจากนั้น ไฟล์ที่สร้างด้วย OpenSSL จะปรากฏในไดเร็กทอรี bin

1. ขั้นแรกคุณต้องสร้าง private SSH key ตามคำสั่งต่อไปนี้

genrsa -out {filename} {length}

โดยที่

{filename} – ชื่อของไฟล์ key ที่จะส่งออกเป็นนามสกุล .key (ตัวอย่าง server.key
{length} – ความยาวของ key ในหน่วย bit (อย่างน้อยควรเป็น 2048 bit เพื่อความปลอดภัย, ตัวอย่าง 4096 bit)

Note: ไม่ควรใส่ passphrase ใน key ของคุณ มิฉะนั้น คุณอาจะเจอกับข้อผิดพลาดระหว่างการเพิ่มใบรับรองไปยัง Ruk-com cloud dashboard

2. จากนั้นสร้างคำขอใบรับรองตาม key ที่เตรียมไว้ สร้างได้ดังนี้:

req -config {config_path} -new -key {keyname} -out {filename}

โดยที่

{config_path} – path ที่ชี้ไปยัง *openssl.cnf * ซึ่งเป็นไฟล์ config ที่อยู่ในโฟล์เดอร์เดียวกับไฟล์ OpenSSL (จะมีรูปแบบดังนี้ C:\path\to\openssl.cnf)
{keyname} – ชื่อไฟล์ key ของคุณ (เป็นอันเดียวกันกับ key ที่คุณสร้างมาก่อนหน้านี้ นั่นก็คือ server.key)
{filename} – ชื่อไฟล์ที่ส่งออกมาจากการร้องขอโดยมีนามสกุลเป็น .csr (ตัวอย่าง server.csr)

คุณจะเห็นชุดคำถามปรากฏขึ้น ตอบคำถามเพื่อกรอกข้อมูลใบรับรองให้ครบถ้วน

Note:  ค่าพารามิเตอร์ Common Name ต้องเป็นชื่อเดียวกันกับชื่อโดเมนที่คุณซื้อ มิฉะนั้น ใบรับรองของคุณจะไม่ได้รับการตรวจสอบ

วิธีขอใบรับรองสำหรับ Linux/MacOS/FreeBSD

ในกรณีที่คุณยังไม่ได้ติดตั้งเครื่องมือ OpenSSL ให้ใช้คำสั่งจัดการแพ็คเกจที่เหมาะสม ดำเนินการติดตั้ง openssl ในเทอร์มินัลโดยใช้คำสั่งต่อไปนี้:
Linux: Ubuntu/Debian

sudo apt-get update
sudo apt-get install openssl


Linux: CentOS
(Nginx บนแพลตฟอร์ม)

sudo yum install openssl

เมื่อกระบวนการติดตั้งเสร็จสิ้น ให้ดำเนินการสร้างไฟล์ที่ต้องการ ไฟล์ OpenSSL ที่สร้างขึ้นใหม่ทั้งหมดจะปรากฏในไดเร็กทอรีที่รันคำสั่ง:

1. ก่อนอื่น คุณต้องสร้าง server key ส่วนตัวสำหรับ SSH รันคำสั่งต่อไปนี้:

openssl genrsa -out {filename} {length}

โดยที่

{filename} – ชื่อของไฟล์ key ที่จะส่งออกเป็นนามสกุล .key (ตัวอย่าง server.key
{length} – ความยาวของ key ในหน่วย bit (อย่างน้อยควรเป็น 2048 bit เพื่อความปลอดภัย, ตัวอย่าง 4096 bit)

Note: ไม่ควรใส่ passphrase ใน key ของคุณ มิฉะนั้น คุณอาจะเจอกับข้อผิดพลาดระหว่างการเพิ่มใบรับรองไปยัง Ruk-com cloud dashboard

2. จากนั้นคุณควรสร้างคำขอใบรับรองตาม key ที่เตรียมไว้ สร้างได้ดังนี้:

openssl req -new -key {keyname} -out {filename}

โดยที่:

{keyname} – ชื่อไฟล์ key ของคุณ (เป็นอันเดียวกันกับที่คุณสร้างก่อนหน้านี้ นั่นก็คือ server.key ในกรณีของเรา) 
{filename} – ชื่อไฟล์ส่งออกในนามสกุล .csr (เช่น server.csr)

คุณจะเห็นชุดคำถามปรากฏขึ้น ตอบคำถามเพื่อกรอกข้อมูลใบรับรองให้ครบถ้วน

Note: ค่าพารามิเตอร์ Common Name ต้องเป็นชื่อเดียวกันกับชื่อโดเมนที่คุณซื้อ มิฉะนั้น ใบรับรองของคุณจะไม่ได้รับการตรวจสอบ

3. ส่งคำขอใบรับรองที่คุณได้รับไปยังบริษัทผู้ออกใบรับรอง (CA) ที่คุณต้องการเพื่อลงนาม

Tip: คุณสามารถ ลงนามใบรับรองได้ด้วยตัวเอง คลิกลิงก์เพื่อดูวิธีการทำ

4. ที่เลือกจะตรวจสอบข้อมูลระบุตัวตนของเจ้าของโดเมนและ (หากทุกอย่างเรียบร้อย) จะส่งใบรับรองระดับกลางและใบรับรองโดเมนกลับมาให้คุณ

เมื่อคุณได้รับไฟล์ที่จำเป็นทั้งหมดแล้ว คุณสามารถดำเนินการกำหนดค่า environment ของคุณได้

ปรับแต่ง Environment Topology เพื่อรองรับ Custom SSL

เพื่อความปลอดภัยสำหรับใบรับรอง SSL แบบกำหนดเอง environment ของคุณควรมี custom domain และ public IP แนบมากับแอปพลิเคชันเซิร์ฟเวอร์ของคุณ

Note: Environment ที่มีพื้นฐานบน .NETGoNode.js หรือ custom Docker containers ควรจะมี load balancer ที่รองรับ custom SSL ในกรณีนี้ public IP ควรจะถูกแนบมากับ balancer แทนที่จะเป็น application server ที่จะกลายมาเป็น entry point ของ environment ของคุณ

1. Log in มายัง Ruk-com cloud dashboard และ สร้าง environment ใหม่ หรือ คลิกที่ปุ่ม change environment topology

2. ในหน้าต่างของ Environment Topology คลิกที่ สวิตช์ส่วนของ SSL ที่อยู่ด้านบนของกรอบ server และตรวจสอบว่าเป็นไปตามหัวข้อ SSL ที่กำหนดหรือไม่ (เช่น หากตัวเลือกทั้งหมดในรายการข้อกำหนดมีเครื่องหมายถูกสีเขียว)

ถ้าหากตัวเลือกไม่ได้มีเครื่องหมายถูกสีเขียว Ruk-com cloud สามารถช่วยคุณเปิดใช้งานหัวข้อเหล่านั้นได้ในคลิกเดียว โดยคลิกปุ่ม Enable ที่อยู่ถัดไปจากตัวเลือก และ environment topology ของคุณจะเปิดการรองรับ SSL ทันที

เพื่อสิ้นสุดการปรับปรุงนี้ คลิกที่ปุ่ม Create เพื่อสร้าง environment หรือ คลิกที่ปุ่ม Apply เพื่อบันทึกการเปลี่ยนแปลง

ตั้งค่า DNS Record ของ Domain name

ตอนนี้ คุณต้องตั้งค่า A Reccord เพื่อกำหนดให้โดเมนของคุณชี้ไปยังที่อยู่ IP สาธารณะของแอปพลิเคชันของคุณ

1. ขยาย node entrypoint ของ environment ของคุณ (load balance หรือ application server) เพื่อดูรายการของ IP Address แล้วคลิก copy to clipboard ที่อยู่ถัดไปจาก public IP address

2. จากนั้นไปยัง DNS Manager จากผู้ให้บริการจด domain name (เป็นอันเดียวกันกับที่คุณใช้ในการซื้อ domain name) และ ตั้งค่า A Record โดยใช้ IP Address ที่ตัดลอกมาจาก dashboard

ดูข้อมูลเพิ่มเติมและตัวอย่างโดยละเอียดได้ใน Custom Domain ผ่านทาง A Record

อัพโหลดใบรับรอง SSL ไปยัง environment ของคุณ

ขั้นตอนสุดท้ายที่คุณต้องดำเนินการคือการอัปโหลดไฟล์ใบรับรองไปยัง environment ของคุณ

1. คลิก Settings เพื่อตั้งค่า environment

2. ในแท็บที่เปิดอยู่ ให้เลือก Custom SSL ในรายการด้านซ้ายมือ
อัปโหลด server key ใบรับรองระดับกลาง (CA) และใบรับรองโดเมนลงในช่องที่เหมาะสม แล้วกดปุ่ม Save

โดยที่

  • server key จะเป็นไฟล์นามสกุล .key
  • Intermediate Certificate (CA) จะเป็นไฟล์นามสกุล .crt (ตัวอย่างเช่น intermedia.crt)
  • Domain Certificate จะเป็นไฟล์ .crt (ตัวอย่างเช่น yourdomain_com.crt)

เมื่อเซิร์ฟเวอร์ใน environment ของคุณ restart โดยอัตโนมัติเสร็จแล้ว ให้ตรวจสอบให้แน่ใจว่าทุกอย่างทำงานอย่างถูกต้อง หากต้องการทำเช่นนั้น ให้ป้อนชื่อโดเมนที่กำหนดเองที่ผูกไว้ (หรือที่อยู่ IP ภายนอกที่แนบมา) ลงในแถบที่อยู่ของเบราว์เซอร์ด้วย https:// โปรโตคอลการเชื่อมต่อที่ระบุแทนค่าเริ่มต้น http://  แอปพลิเคชันของคุณควรเปิดได้โดยไม่มีปัญหาใดๆ

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

Tips: หากต้องการตั้งค่า HTTPS Redirection เพิ่มเติม สามารถทำได้โดยการติดตั้ง add-on HTTPS Redirection ในเมนู add-on