การสร้าง Transport Layer Security (TLS) certificates/keys
How to generate TLS certificates
TLS หรือ Transport Layer Security เป็นโปรโตคอลการเข้ารหัสที่ใช้ในการรักษาความปลอดภัยในการสื่อสารผ่านเครือข่ายคอมพิวเตอร์ที่ใช้กันอย่างแพร่หลาย โดยมีวัตถุประสงค์หลักเพื่อรักษาความเป็นส่วนตัวและความสมบูรณ์ของข้อมูลที่สื่อสารกันระหว่างสอง Applications
OpenVPN ก็เป็น Application หนึ่งทีนิยมใช้ TLS ในการรักษาความปลอดภัยในการเชื่อมต่อ โดยการเลือกใช้ Autentication แบบ TLS นั้นต้องใช้ใบรับรอง (certificates) และคีย์ (keys) หลายรายการสำหรับการตรวจสอบสิทธิ์
ฝั่ง VPN Server ต้องใช้
The root certificate file (Certificate Authority)
Server certificate
Server key
Diffie Hellman Parameters
ฝั่ง OpenVPN client ต้องใช้
The root certificate file (Certificate Authority)
Client certificate
Client key
บทความนี้เป็นคู่มือแนะนำวิธีสร้าง TLS certificates และ keys เพื่อใช้ในการเชื่อมต่อ OpenVPN ทั้งฝั่ง Server และ Client สำหรับผู้ใช้ระบบปฏิบัติการ Windows
- 1 How to generate TLS certificates
- 1.1 ขั้นตอนที่ 1: ติดตั้ง OpenVPN software
- 1.2 ขั้นตอนที่ 2: สร้าง TLS certificates และ keys ผ่าน Windows Command Prompt
- 1.2.1 เปิด Windows Command Prompt ด้วยสิทธิ์ Administrator
- 1.2.2 พิมพ์ Command เตรียมความพร้อม
- 1.2.2.1 >> cd "C:\Program Files\OpenVPN\easy-rsa"
- 1.2.2.2 >> EasyRSA-Start.bat
- 1.2.2.3 >> ./easyrsa init-pki
- 1.2.2.4 ตรวจสอบไฟล์ vars.bat ต้องมีอยู่ในเครื่อง
- 1.2.2.5 >> set DH_KEY_SIZE=2048
- 1.2.2.6 >> vars.bat
- 1.2.2.7 >> ./easyrsa clean-all
- 1.2.3 เริ่มสร้าง certificates และ keys
ขั้นตอนที่ 1: ติดตั้ง OpenVPN software
>>Download<< (https://openvpn.net/community-downloads/ )
เมื่อ Run ไฟล์ติดตั้งเลือก Setup Type เป็น
เมื่อเข้าถึงหน้า Custom Installation เลื่อนหา OpenSSL Utilities → EasyRSA 3 Certificate Management Scripts เลือก Will be installed on local hard drive และกด Install Now
ขั้นตอนที่ 2: สร้าง TLS certificates และ keys ผ่าน Windows Command Prompt
เราจะใช้แอปพลิเคชัน EasyRSA 3 ที่ติดตั้งพร้อมกับ OpenVPN ในขั้นตอนที่ 1 ในการสร้าง certificates และ keys โดยต้องใช้ Windows Command Prompt ในการพิมพ์คำสั่ง EasyRSA
เปิด Windows Command Prompt ด้วยสิทธิ์ Administrator
ด้วยการพิมพ์ cmd ลงใน Windows search bar (Windows button + S) แล้ว Click ขวา เลือก Run as administrator
พิมพ์ Command เตรียมความพร้อม
>> cd "C:\Program Files\OpenVPN\easy-rsa"
เปลี่ยน directory ปัจจุบันไปเป็นโฟลเดอร์ EasyRSA (ตาม Path ที่เราติดตั้ง OpenVPN ในขั้นตอนที่ 1)
>> EasyRSA-Start.bat
จะเข้า EasyRSA Shell ดังภาพ
>> ./easyrsa init-pki
Initialize directory Public Key Infrastructure (PKI) โดยคำสั่ง
เมื่อ run คำสั่ง หน้าต่างจะแจ้ง Warning ลบไฟล์ ให้ตอบ yes
เพื่อเตรียม directory ให้พร้อมสำหรับการสร้างไฟล์ หากเข้าดูจาก File Explorer หลังใช้คำสั่ง Initialize ไฟล์ใน folder จะมีดังภาพ
ตรวจสอบไฟล์ vars.bat ต้องมีอยู่ในเครื่อง
ไฟล์ vars.bat จะต้องมีข้อมูลดังต่อไปนี้
set KEY_COUNTRY=US
set KEY_PROVINCE=CA
set KEY_CITY=SanFrancisco
set KEY_ORG=OpenVPN
set KEY_EMAIL=mail@host.domain
ถ้าไม่มีไฟล์ใน Folder C:\Program Files\OpenVPN\easy-rsa
สามารถ Download ไปวางได้
>> set DH_KEY_SIZE=2048
กำหนดขนาดคีย์สำหรับ Diffie Hellman parameters
>> vars.bat
ตรวจสอบข้อมูลที่คุณบันทึกในไพล์ var.bat ต้องตรงตามนี้
>> ./easyrsa clean-all
Clear ทุกอย่างก่อนเริ่มสร้าง certificates และ keys
Warning ลบไฟล์ ให้ตอบ yes
เริ่มสร้าง certificates และ keys
เริ่มสร้าง certificates และ keys โดยสร้าง certificate authority (CA) ซึ่งเป็นไฟล์หลักก่อนด้วยคำสั่ง
./easyrsa build-ca nopass
ตั้งชื่อ Server Nameต่อไปสร้าง server certificate และ key ด้วยคำสั่ง
./easyrsa build-server-full server nopass
และสร้าง clients certificates และ keys ด้วยคำสั่ง
./easyrsa build-client-full Client1 nopass
เปลี่ยน Client1 เป็น client's Common Name (CN) ที่คุณต้องการ หาก VPN System ของคุณมี VPN Client หลาย Site ให้ Run คำสั่งเดิม และ เปลี่ยน client's Common Name (CN) ไปเรื่อยๆ ให้ครบตามจำนวน Client Siteและสุดท้าย Generate Diffie Hellman parameters ด้วยคำสั่ง
./easyrsa gen-dh
หลังจากที่สร้างไฟล์ทั้งหมดเสร็จสิ้น เราจะได้ TLS Ccertificates และ Keysทั้งหมดที่จำเป็นต้องใช้ในการสร้างการเชื่อมต่อ OpenVPN โดยไฟล์ต่างๆ จะไปอยู่ตาม Directories ดังนี้
File(s) | Location |
---|---|
CA certificate | C:\Program Files\OpenVPN\easy-rsa\pki |
Diffie-Hellman parameters | C:\Program Files\OpenVPN\easy-rsa\pki |
Client and Server keys | C:\Program Files\OpenVPN\easy-rsa\pki\private |
Client and Server certificates | C:\Program Files\OpenVPN\easy-rsa\pki\issued |
สามารถเข้าไป Copy ไฟล์ต่างๆ มาใช้ได้ในขั้นตอนการสร้าง VPN เพื่อการเชื่อมต่อ