การรักษาความปลอดภัยของเว็บไซต์เป็นสิ่งสำคัญอย่างยิ่งในยุคดิจิทัลปัจจุบัน โดยเฉพาะการใช้โปรโตคอล HTTPS ซึ่งช่วยให้ข้อมูลที่ส่งผ่านเว็บไซต์ของคุณถูกเข้ารหัสและปลอดภัย
ในบทความนี้เราจะมาสอนวิธีการติดตั้งและกำหนดค่า HTTPS บนเซิร์ฟเวอร์ Ubuntu ด้วย Certbot และ Nginx
สิ่งที่ต้องมี
- เซิร์ฟเวอร์ Ubuntu แนะนำ Ubuntu 20.04 LTS หรือเวอร์ชันล่าสุด
- Nginx หากยังไม่มี สามารถติดตั้งได้ตามขั้นตอนในบทความนี้
- โดเมนเนมที่ชี้ไปยังเซิร์ฟเวอร์ของคุณ เช่น example.com และมี DNS records ชี้ไปยัง IP ของเซิร์ฟเวอร์
- สิทธิ์การเข้าถึงแบบ root หรือผู้ใช้ที่มีสิทธิ์ sudo บนเซิร์ฟเวอร์
วิธีการชี้โดเมนไปยัง IP ของเซิร์ฟเวอร์
- เพิ่ม DNS records สำหรับโดเมน certbot.pargorn.com ที่ชี้ไปยัง IP ของเซิร์ฟเวอร์
- เลือก
A record
และใส่ IP ของเซิร์ฟเวอร์
ขั้นตอนที่ 1 อัปเดตระบบ
- เริ่มต้นด้วยการอัปเดตแพคเกจของระบบให้เป็นเวอร์ชันล่าสุด
sudo apt update
sudo apt upgrade -y
ขั้นตอนที่ 2 ติดตั้ง Nginx
- หากยังไม่ได้ติดตั้ง Nginx สามารถติดตั้งได้ด้วยคำสั่ง
sudo apt install nginx -y
- หลังจากติดตั้งเสร็จสิ้น ตรวจสอบให้แน่ใจว่า Nginx ทำงานอยู่
- คุณควรเห็นสถานะ
active (running)
ถ้า Nginx ทำงานถูกต้อง
ขั้นตอนที่ 3 สร้างเว็บไซต์ “Hello Certbot”
เราจะสร้างเว็บไซต์ง่ายๆ ที่แสดงข้อความ “Hello Certbot” สำหรับโดเมน certbot.pargorn.com
1. สร้างไดเรกทอรีสำหรับเว็บไซต์
sudo mkdir -p /var/www/certbot.pargorn.com/html
2. กำหนดสิทธิ์ให้กับไดเรกทอรี
sudo chown -R $USER:$USER /var/www/certbot.pargorn.com/html
sudo chmod -R 755 /var/www/certbot.pargorn.com
3. สร้างไฟล์ HTML สำหรับเว็บไซต์
- สร้างไฟล์ index.html ที่จะแสดงข้อความ “Hello Certbot”
nano /var/www/certbot.pargorn.com/html/index.html
4. จากนั้นเพิ่มเนื้อหาดังนี้
- บันทึกไฟล์โดยกด
Ctrl + O
แล้วออกจาก nano ด้วยCtrl + X
<!DOCTYPE html>
<html>
<head>
<title>Hello Certbot</title>
</head>
<body>
<h1>Hello Certbot</h1>
</body>
</html>
5. สร้างไฟล์การตั้งค่าเซิร์ฟเวอร์สำหรับ Nginx
- สร้างไฟล์การตั้งค่าสำหรับเว็บไซต์
certbot.pargorn.com
sudo nano /etc/nginx/sites-available/certbot.pargorn.com
6. เพิ่มเนื้อหาดังนี้
- บันทึกไฟล์โดยกด
Ctrl + O
แล้วออกจาก nano ด้วยCtrl + X
server {
listen 80;
listen [::]:80;
server_name certbot.pargorn.com;
root /var/www/certbot.pargorn.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
7. เปิดใช้งานการตั้งค่าเว็บไซต์
- สร้าง symbolic link ไปยัง sites-enabled เพื่อเปิดใช้งานเว็บไซต์
sudo ln -s /etc/nginx/sites-available/certbot.pargorn.com /etc/nginx/sites-enabled/
8. ทดสอบการตั้งค่าของ Nginx
sudo nginx -t
9. หากไม่มีข้อผิดพลาด ให้รีสตาร์ท Nginx
sudo systemctl reload nginx
10. ตรวจสอบว่าเว็บไซต์ “Hello Certbot” ทำงานอยู่หรือไม่
- เปิดเว็บเบราว์เซอร์และเข้าไปที่
http://certbot.pargorn.com
ขั้นตอนที่ 4 ติดตั้ง Certbot
- Certbot เป็นเครื่องมือที่ช่วยให้การขอและต่ออายุ SSL Certificates จาก Let’s Encrypt เป็นเรื่องง่าย ในการติดตั้ง Certbot สำหรับ Nginx บน Ubuntu
sudo apt install certbot python3-certbot-nginx -y
ขั้นตอนที่ 5 ขอรับ SSL Certificate ด้วย Certbot
- หลังจากติดตั้งเสร็จสิ้น สามารถใช้ Certbot ในการขอรับ SSL Certificate ได้โดยใช้คำสั่ง
sudo certbot --nginx -d certbot.pargorn.com
Certbot จะถามข้อมูลต่างๆ ดังนี้
- อีเมลสำหรับการแจ้งเตือน ใส่อีเมลที่สามารถติดต่อได้เพื่อรับการแจ้งเตือนเกี่ยวกับ SSL Certificate
- ยอมรับข้อตกลงการให้บริการ
-
เลือกโดเมนที่ต้องการเปิดใช้งาน HTTPS ในที่นี้จะเลือก
certbot.pargorn.com
- เลือกว่าจะทำการเปลี่ยนเส้นทางทั้งหมดจาก HTTP เป็น HTTPS หรือไม่ แนะนำให้เลือกให้เปลี่ยนเส้นทางทั้งหมด
ตัวอย่าง
Which names would you like to activate HTTPS for?
- certbot.pargorn.com
Please choose whether or not to redirect HTTP traffic to HTTPS,
removing HTTP access. Your web traffic will then only be available
through HTTPS.
1: No redirect - Make no further changes to the webserver configuration
2: Redirect - Make all requests redirect to secure HTTPS access.
Choose this for simple HTTPS setups.
Select the appropriate number [1-2] then [enter] (default: 2):
ขั้นตอนที่ 6 ตรวจสอบการตั้งค่า Nginx
- Certbot จะปรับแต่งไฟล์การตั้งค่า Nginx ให้รองรับ HTTPS โดยอัตโนมัติ แต่คุณสามารถตรวจสอบได้ที่ไฟล์การตั้งค่าใน /etc/nginx/sites-available/certbot.pargorn.com
server {
listen 80;
listen [::]:80;
server_name certbot.pargorn.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name certbot.pargorn.com;
ssl_certificate /etc/letsencrypt/live/certbot.pargorn.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/certbot.pargorn.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
root /var/www/certbot.pargorn.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
- หลังจากตรวจสอบแล้ว ให้ทดสอบการตั้งค่าของ Nginx
sudo nginx -t
- ถ้าการตั้งค่าถูกต้อง ให้รีสตาร์ท Nginx
sudo systemctl reload nginx
ขั้นตอนที่ 7 ทดสอบเว็บไซต์ด้วย HTTPS
เปิดเว็บเบราว์เซอร์และเข้าไปที่ https://certbot.pargorn.com
คุณควรเห็น ไอคอนรูปกุญแจล็อก 🔒
ที่แสดงถึงการเชื่อมต่อที่ปลอดภัย พร้อมทั้งหน้าเว็บที่แสดงข้อความ “Hello Certbot” หากไม่มีข้อผิดพลาดใดๆ เกิดขึ้น แสดงว่าการตั้งค่า HTTPS สำเร็จเรียบร้อยแล้ว
ขั้นตอนที่ 8 ตั้งค่าการต่ออายุอัตโนมัติสำหรับ SSL Certificate
SSL Certificates จาก Let’s Encrypt มีอายุ 90 วัน คุณสามารถตั้งค่าให้ Certbot ต่ออายุอัตโนมัติได้ด้วยการเพิ่ม Cron Job หรือใช้ systemd timer ที่มาพร้อมกับ Certbot
ตรวจสอบให้แน่ใจว่า Cron Job สำหรับ Certbot มีอยู่
sudo systemctl list-timers | grep certbot
- โดยปกติ Certbot จะตั้งค่าให้ทำการตรวจสอบและต่ออายุอัตโนมัติทุกวัน หากต้องการตรวจสอบการต่ออายุสามารถทำได้ด้วยคำสั่ง
- ถ้าไม่มีข้อผิดพลาด แสดงว่าการตั้งค่าการต่ออายุอัตโนมัติทำงานได้ถูกต้อง
sudo certbot renew --dry-run
สรุป
การติดตั้งและกำหนดค่า HTTPS บน Nginx ด้วย Certbot บน Ubuntu Server เป็นกระบวนการที่ไม่ซับซ้อนและสามารถทำได้ในไม่กี่ขั้นตอน การใช้ HTTPS จะช่วยเพิ่มความปลอดภัยให้กับเว็บไซต์ของคุณและสร้างความเชื่อมั่นให้กับผู้ใช้งาน ในบทความนี้เราได้สร้างเว็บไซต์ที่แสดงข้อความ “Hello Certbot” และใช้โดเมน certbot.pargorn.com เพื่อแสดงให้เห็นถึงการตั้งค่าอย่างครบถ้วน อย่าลืมตรวจสอบและต่ออายุ SSL Certificates อย่างสม่ำเสมอเพื่อรักษาความปลอดภัยของเว็บไซต์อย่างต่อเนื่อง
Top comments (0)