วิธีการในการทำให้ แอปพลิเคชั้นของคุณปลอดภัยคือการใช้ การเชื่อมต่อผ่าน SSL-encrypted (Secure Socket Layer) ใน Ruk-Com Cloud คุณสามารถใช้ได้ทั้งของ Ruk-Com SSL และ Custom SSL certificates
ทั้งนี้สำหรับ Custom SSL certificates ทั้งหมดจะต้องทำการขอผ่านบริษัทเกี่ยวกับ Certificate Authority (CA) ยกตัวอย่างเช่น Let’s Enctypt ในกรณี cetificate ของคุณก็จะกลายเป็น cetificate ที่น่าเชื่อถือ หลังจากทำการขอเรียบร้อยแล้ว เพื่อให้เกิดความน่าเชื่อถือจากผู้อื่นและทำการการเชื่อมต่อไปยังแอปพลิเคชั่นของคุณไม่มีปัญหา
แต่ถึงอย่างไรคุณสามารถขอ custom certificate ด้วยตัวคุณเองได้และยังคงได้รับการเชื่อมต่อที่ปลอดภัย แต่ certificate ดังกล่าวจะไม่น่าเชื่อถือ ทำให้เวลาเปิดแอปพลิเคชั่น ตัวแอปพลิเคชั่นจะแสดงข้อความแจ้งเตือนให้ออกจากหน้าเว็บไซต์กับผู้ใช้งาน เพราะว่าการเชื่อมต่อไม่น่าเชื่อถือ
ผู้ใช้งานส่วนใหญ่จะออกจากหน้าเว็บนั้น ดังนั้นเราแนะนำว่าคุณไม่ควรใช้ self-signed-certficates สำหรับแอปพลิเคชั่น production แต่ว่าสามารถใช้งานสำหรับ การพัฒนา/ทดสอบระบบ หรือ เว็บไซต์ส่วนตัวที่เข้ากันเฉพาะกลุ่มเล็ก
ดังนั้น เรามาดูวิธีการสร้าง certificate ในแต่ละแบบ และ วิธีการนำไปใช้งานกับ Ruk-Com Cloud env
การขอ Self-Signed SSL Certificate
สำหรับการขอ self-signed ssl certificate นั้นคุณต้องทำการซื้อโดเมนก่อน
เมื่อทำการสั่งซื้อเรียบร้อยแล้ว คุณพร้อมที่จะดำเนินการในการสร้าง ssl certificate ของคุณด้วยความช่วยเหลือของเครื่องมือต่างๆ ในตัวอย่างนี้เราจะใช้งาน OpenSSL ทั้งนี้ขึ้นอยู่กับระบบปฎิบัติการที่คุณใช้งาน สามารถดูขั้นตอนการทำต่อไปนี้
- สำหรับ Windows
- สำหรับ Linux/MacOS/FreeBSD
คุณยังสามารถสร้างไฟล์ที่ต้องการได้โดยใช้ Elastic Virtual Private Server ของเรา
สำหรับ Windows
ให้คุณ ดาวน์โหลด OpenSSL เวอร์ชั่นล่าสุด ให้ทำการแตกไฟล์และเปิดใช้งานโดยการคลิ๊กสองครั้งที่ไฟล์ openssl.exe หลังจากนั้นไฟล์ที่ถูกสร้างโดย OpenSSL จะปรากฎในโฟลเดอร์เดียวกันกับที่เปิดไฟล์ openssl.exe
- ลำดับแรก คุณต้องสร้าง SSH private key สำหรับ root certificate ของคุณ (ใช้ในการขอ certificate ทั้งหมด) ใช้คำสั่งต่อไปนี้
genrsa -out {filename} {length}
{filename} – ชื่อของไฟล์คีย์ที่มี .key ต่อท้าย (ตัวอย่าง rootCA.key)
{length} – ความยาวของ private key เป็นหน่วย bit (ตัวอย่าง 2048)
- ถัดไปให้คุณทำการสร้างไฟล์ root CA certificate โดยใช้คีย์ที่ได้เตรียมมาในการสร้าง โดยใช้คำสั่ง req กับ ตัวเลือก x509 ในคำสั่งเพื่อให้ออกมาเป็น self-singed root cerificate แทน certificate request
req -config {config_path} -x509 -new -key {keyname} -days {days} -out {filename}
{config_path} – พาร์ทของ openssl.cnf configuration file ที่อยู่ใน directory ที่มีไฟล์ OpenSSL ที่แตกออกมา (ระบุตาม C:\path\to\openssl.cnf format)
{keyname} – ชื่อ root key ของคุณ (ชื่อที่คุณได้ตั้งไว้ในขั้นตอนก่อนหน้านี้ Ex. rootCA.key)
{day} – จำนวนวันที่ certificate ปัจจุบันจะสามารถใช้งานได้
{filename} – ชื่อของ cetificate ที่เป็น .crt (Ex. rootCA.crt)
ตั้งค่ารายละเอียดที่จำเป็นสำหรับ CA certficate โดยการตอบคำถามตามรายการที่ปรากฎ
หลังจากตอบคำถามทั้งหมดเรียบร้อยแล้วคุณจะได้รับ self-signed root certificate สำหรับ CA ของคุณเอง
- ตอนนี้ คุณสามารถสร้าง private key และ self-signed certificate ของคุณกับ Hostname ที่ซื้อไว้ เริ่มต้นด้วยการสร้าง key เราจะสร้าง key วิธีเดียวกันกับสร้าง root
genrsa -out {filename} {length}
{filename} – ชื่อของไฟล์คีย์ที่มี .key ต่อท้าย (ตัวอย่าง host.key)
{length} – ความยาวของ private key เป็นหน่วย bit (ตัวอย่าง 2048)
Note: คุณไม่ควรป้องกันคีย์ของคุณด้วยรหัสผ่าน มิฉะนั้นจะทำให้คุณได้รับ error ระหว่างที่เพิ่ม key เข้าไปที่หน้าจัดการของ Ruk-Com Cloud
- ถัดไปทำการรันคำสั่งต่อไปที่นี้สร้างไฟล์ certificate signing request (CSR)
req -config {config_path} -new -key {keyname} -out {filename}
{config_path} – พาร์ทของ openssl.cnf configuration file ที่อยู่ใน directory ที่มีไฟล์ OpenSSL ที่แตกออกมา (ระบุตาม C:\path\to\openssl.cnf format)
{keyname} – ชื่อ root key ของคุณ (ชื่อที่คุณได้ตั้งไว้ในขั้นตอนก่อนหน้านี้ Ex. host.key)
{filename} – ชื่อขอไฟล์ output ที่เป็น .csr (Ex. host.csr)
ให้คุณทำการตอบคำถามตามรายการที่ปรากฎเพื่อใช้เป็นข้อมูลของคุณในการสร้าง certificate
Note: ตัวแปร Common name ควรเป็นชื่อเดียวกับชื่อโดเมนที่คุณต้องการใช้งาน มิฉะนั้น certificate ของคุณจะไม่สามารถใช้งานได้
- ขั้นตอนสุดท้าย คือการสร้าง self-signed certificate ของคุณ โดยใช้ root CA certificate เราจะใช้คำสั่ง x509 กับตัวเลือกตามนี้
- -req – หมายถึง ต้องการ format ของ input file ที่ใช้ในการขอ certificate
- -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 ปัจจุบันจะสามารถใช้งานได้
หลังจากดำเนินการตามขั้นตอนข้างต้นคุณจะมี self-signed SSL certificate สำหรับใช้งานใน application ของคุณเรียบร้อยแล้ว
For Linux/MacOS/FreeBSD
ในกรณีที่คุณยังไม่ได้ติดตั้งเครื่องมือ OpenSSL คุณสามารถติดตั้งได้โดยคำสั่งที่เหมาะสม (ขึ้นอยู่กับ OS package manager ของคุณ) สามารถใช้คำสั่งใน Terminal ของคุณ ยกตัวอย่างเช่นใน Ubuntu/Debian ที่เป็น Linux สามารถใช้คำสั่งตามนี้
sudo apt-get install openssl
เมื่อทำการติดตั้งเรียบร้อยแล้ว ไฟล์ต่างๆที่เกี่ยวข้องกับ OpenSSL จะแสดงอยู่ใน home directory ของเครื่องของคุณ
- ลำดับแรกคุณต้องทำการสร้าง SSH private key สำหรับ root certificate ของคุณ (จะใช้ในการสร้าง certificate ทั้งหมด) สามารถสร้างตามคำสั่งด้านล่างนี้
openssl genrsa -out {filename} {length}
{filename} – ชื่อของคีย์ที่สร้าง .key (Ex. rootCA.key)
{length} – ความยาวของ private key หน่วยเป็น bits (Ex. 2048)
- ถัดไปคุณควรสร้าง 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 โดยการตอบคำถามตามรายการที่ปรากฎ
หลังจากใช้คำสั่งข้างต้นเรียบร้อยแล้วจะได้ self-signed root certificate สำหรับ CA ของคุณ
- ตอนนี้คุณสามารถสร้าง private key และ self-signed certificate สำหรับโดเมนที่คุณซื้อมา เรามาเริ่มสร้าง key โดยการสร้างวิธีเดียวกันกับการสร้าง root
openssl genrsa -out {filename} {length}
{filename} – ชื่อของคีย์ที่สร้าง .key (Ex. host.key)
{length} – ความยาวของ private key หน่วยเป็น bits (Ex. 2048)
Note: คุณไม่ควรป้องกันคีย์ของคุณด้วยรหัสผ่าน มิฉะนั้นจะทำให้คุณได้รับ error ระหว่างที่เพิ่ม key เข้าไปที่หน้าจัดการของ Ruk-Com Cloud
- ถัดไปทำการรันคำสั่งต่อไปที่นี้สร้างไฟล์ certificate signing request (CSR)
openssl req -new -key {keyname} -out {filename}
{keyname} – ชื่อ root key ของคุณ (ชื่อที่คุณได้ตั้งไว้ในขั้นตอนก่อนหน้านี้ Ex. host.key)
{filename} – ชื่อขอไฟล์ output ที่เป็น .csr (Ex. host.csr)
ให้คุณทำการตอบคำถามตามรายการที่ปรากฎเพื่อใช้เป็นข้อมูลของคุณในการสร้าง certificate
Note: ตัวแปร Common name ควรเป็นชื่อเดียวกับชื่อโดเมนที่คุณต้องการใช้งาน มิฉะนั้น certificate ของคุณจะไม่สามารถใช้งานได้
- ขั้นตอนสุดท้าย คือการสร้าง self-signed certificate ของคุณ โดยใช้ root CA certificate เราจะใช้คำสั่ง x509 กับตัวเลือกตามนี้
- -req – หมายถึง ต้องการ format ของ input file ที่ใช้ในการขอ certificate
- -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 ของคุณเรียบร้อยแล้ว
Elastic VPS
คุณสามารถสร้าง self-signed certificate โดยใช้ Elastic VPS server สามารถดำเนินการได้ดังนี้
- สร้าง environment ที่มี Elastic VPS ภายใน
- เชื่อมต่อ Elastic vps ด้วยวิธีที่ต้องการ (ใช้ Public IP หรือ ใช้ผ่าน SSH Gateway)
- เข้า OpenSSL shell ด้วยคำสั่ง openssl ที่เกี่ยวข้อง
- สร้าง self-signed certificate ตามขั้นตอนนี้ Linux/MacOS/FreeBSD (ข้อแตกต่างเพียงอย่างเดียวคือคำสั่งทั้งหมดควรดำเนินการโดยไม่มีคำ openssl ที่จุดเริ่มต้นเนื่องจากคุณอยู่ในเชลล์ OpenSSL แล้ว)
- เมื่อดำเนินการสร้างเสร็จสิ้นคุณจะต้องดาวน์โหลดไฟล์ certificate ที่สร้างขึ้น (เช่นผ่าน Configuration File Manager) เพื่อนำไปใช้กับ environment ที่ต้องการใช้งานในภายหลังได้
Attach Certificates
ตอนนี้ ทำตามขั้นตอนสำหรับการอัปโหลด SSL แบบกำหนดเองอื่น ๆ
- Adjust Environment Topology
- Domain Name and A Record Settings
- Upload Certificate to the Environment
เพียงเท่านี้ หากคุณใส่ชื่อโดเมนของคุณที่กำหนดไว้ ( หรือเรียกใช้งานผ่าน ip ) ลงไปที่เบราว์เซอร์ของคุณโดยใช้โปรโตคอล https:// คุณจะเห็นข้อความแจ้งเตือนให้คุณทราบว่า SSL certificate ของคุณไม่น่าเชื่อถือ
เมื่อพบการแจ้งเตือนให้กดไปที่ “Process anyway” เพื่อดำเนินการต่อไป (หรือปุ่มที่คล้ายกันขึ้นอยู่กับเบราว์เซอร์ของคุณ)
Note: สำหรับบางเบราว์เซอร์ (เช่น Mozilla FireFox) แม้ว่าคุณจะตัดสินใจดำเนินการต่อคุณจำเป็นต้องเพิ่มหน้านี้ในรายการข้อยกเว้นของเบราว์เซอร์ก่อนจึงจะดำเนินการต่อได้
หลังจากนั้นคุณจะถูกเปลี่ยนเส้นทางไปยังไซต์ของคุณผ่านโปรโตคอลที่เข้ารหัส
ตอนนี้คุณสามารถมั่นใจได้ว่าการโต้ตอบทั้งหมดกับแอปพลิเคชันของคุณจะดำเนินการอย่างปลอดภัย