
Cloudflare Origin Certificate คืออะไร
Cloudflare Origin Certificate คือ SSL Certificate ที่ Cloudflare ออกให้ฟรีสำหรับการใช้งานระหว่าง Cloudflare Edge Server กับ Origin Server (เซิร์ฟเวอร์จริงของคุณ) เท่านั้น Certificate นี้ไม่ถูกรับรองโดย Root CA สาธารณะ ดังนั้นถ้าผู้ใช้เชื่อมต่อกับเซิร์ฟเวอร์โดยตรงโดยไม่ผ่าน Cloudflare เบราว์เซอร์จะแสดง "Not Trusted" certificate warning
แต่ถ้าใช้งานผ่าน Cloudflare CDN อย่างถูกต้อง Origin Certificate ร่วมกับ SSL Mode "Full (Strict)" จะทำให้การเชื่อมต่อมีความปลอดภัยครบทั้งสองช่วง ได้แก่ ผู้ใช้ → Cloudflare (ด้วย Cloudflare Universal SSL ฟรี) และ Cloudflare → เซิร์ฟเวอร์คุณ (ด้วย Origin Certificate)
ความแตกต่างระหว่าง SSL Mode ของ Cloudflare
ก่อนติดตั้ง Origin Certificate ควรเข้าใจ Cloudflare SSL Mode ทั้ง 4 แบบ:
- Off — ไม่ใช้ SSL เลย ข้อมูลถูกส่งแบบ HTTP ทั้งหมด (ไม่ควรใช้)
- Flexible — ผู้ใช้เชื่อมต่อกับ Cloudflare ผ่าน HTTPS แต่ Cloudflare เชื่อมต่อกับเซิร์ฟเวอร์คุณด้วย HTTP — ข้อมูลระหว่าง Cloudflare กับเซิร์ฟเวอร์ไม่เข้ารหัส (ไม่แนะนำ)
- Full — เข้ารหัสทั้งสองช่วง แต่ไม่ตรวจสอบ certificate ของเซิร์ฟเวอร์ (ยอมรับ Self-signed)
- Full (Strict) — เข้ารหัสทั้งสองช่วงและตรวจสอบ certificate ของเซิร์ฟเวอร์ว่าถูกต้อง — ต้องใช้ Origin Certificate หรือ Trusted SSL บนเซิร์ฟเวอร์ (แนะนำสูงสุด)
สรุป: ต้องตั้งค่า SSL Mode เป็น "Full (Strict)" เพื่อความปลอดภัยสูงสุด และต้องติดตั้ง Cloudflare Origin Certificate บนเซิร์ฟเวอร์คุณ ทำตามขั้นตอนด้านล่างได้เลย
ขั้นตอนที่ 1 — สร้าง Cloudflare Origin Certificate
เข้าสู่ Cloudflare Dashboard แล้วไปที่ SSL/TLS → Origin Server:
- คลิก "Create Certificate"
- เลือก "Generate private key and CSR with Cloudflare" (ง่ายที่สุด) หรือ "Use my own private key and CSR" ถ้าต้องการ key ที่สร้างเอง
- ระบุ Hostnames ที่ต้องการ เช่น
example.comและ*.example.com - เลือกอายุ Certificate (แนะนำ 15 ปี สำหรับ origin เพราะต่ออายุแล้วต้องติดตั้งใหม่)
- คลิก "Create"
Cloudflare จะสร้าง Origin Certificate (PEM format) และ Private Key ให้คุณ บันทึกทั้งสองไฟล์ทันที เพราะ Private Key จะไม่แสดงอีกครั้ง
ขั้นตอนที่ 2 — บันทึก Certificate และ Private Key
สร้างไฟล์บนเซิร์ฟเวอร์:
# บน VPS — สร้างไฟล์ certificate และ key
mkdir -p /etc/ssl/cloudflare
nano /etc/ssl/cloudflare/cert.pem # วาง Origin Certificate
nano /etc/ssl/cloudflare/key.pem # วาง Private Key
chmod 644 /etc/ssl/cloudflare/cert.pem
chmod 600 /etc/ssl/cloudflare/key.pem
ขั้นตอนที่ 3A — ติดตั้งบน Nginx
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/ssl/cloudflare/cert.pem;
ssl_certificate_key /etc/ssl/cloudflare/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# ... โค้ดเว็บไซต์อื่นๆ ...
}
# Redirect HTTP → HTTPS
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
nginx -t && systemctl reload nginx
ขั้นตอนที่ 3B — ติดตั้งบน Apache
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/ssl/cloudflare/cert.pem
SSLCertificateKeyFile /etc/ssl/cloudflare/key.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5
# ... DocumentRoot และโค้ดอื่นๆ ...
</VirtualHost>
apachectl configtest && systemctl reload apache2
ขั้นตอนที่ 4 — ตั้งค่า SSL Mode บน Cloudflare
กลับเข้า Cloudflare Dashboard → SSL/TLS → Overview แล้วเลือก "Full (Strict)" ทันที นี่คือขั้นตอนสำคัญที่สุด ถ้าไม่เปลี่ยน Mode Cloudflare อาจยังเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน HTTP อยู่
คำเตือน: ก่อนเปลี่ยนเป็น Full (Strict) ตรวจสอบให้แน่ใจว่า Origin Certificate ติดตั้งถูกต้องบนเซิร์ฟเวอร์แล้ว ถ้าเปลี่ยน Mode แต่ยังไม่มี valid certificate บนเซิร์ฟเวอร์ เว็บจะ error ทันที
ขั้นตอนที่ 5 — ดาวน์โหลด Cloudflare Root CA
สำหรับ SSL Mode Full (Strict) Cloudflare ต้องตรวจสอบ certificate chain ดังนั้นควรใส่ Cloudflare Origin CA Root Certificate ด้วย:
# ดาวน์โหลด Cloudflare Origin CA Root Certificate
curl -o /etc/ssl/cloudflare/origin-pull-ca.pem \
https://developers.cloudflare.com/ssl/static/authenticated_origin_pull_ca.pem
ตรวจสอบการทำงาน
หลังตั้งค่าเสร็จแล้ว ตรวจสอบด้วยขั้นตอนต่อไปนี้:
- เปิดเบราว์เซอร์เข้าเว็บ ควรเห็นไอคอนแม่กุญแจสีเขียว
- ใช้ SSL Labs Test ตรวจสอบคะแนน
- ใน Cloudflare Dashboard → SSL/TLS → Edge Certificates ตรวจสอบว่า Universal SSL active
- ทดสอบ HTTP redirect ด้วยคำสั่ง
curl -I http://example.comควรได้ 301/302
Authenticated Origin Pulls — ความปลอดภัยเพิ่มเติม
Cloudflare มี feature "Authenticated Origin Pulls" ที่ทำให้เซิร์ฟเวอร์ยอมรับ connection เฉพาะจาก Cloudflare เท่านั้น ป้องกันไม่ให้ใครรู้ IP จริงของเซิร์ฟเวอร์แล้ว bypass Cloudflare ไปเชื่อมต่อตรงได้:
# Nginx — ตรวจสอบ client certificate จาก Cloudflare
ssl_client_certificate /etc/ssl/cloudflare/origin-pull-ca.pem;
ssl_verify_client on;
จากนั้นเปิดใช้งานใน Cloudflare Dashboard → SSL/TLS → Origin Server → Authenticated Origin Pulls → Enable
เปรียบเทียบ Cloudflare Origin Certificate กับ Let's Encrypt และ Paid SSL
หลายคนสงสัยว่าควรใช้ Origin Certificate จาก Cloudflare หรือจะซื้อ SSL จริงจาก CA เช่น RapidSSL หรือ GeoTrust ดี คำตอบขึ้นอยู่กับว่าเว็บของคุณผ่าน Cloudflare ตลอดเวลาหรือไม่
| ด้าน | Cloudflare Origin Certificate | Let's Encrypt | Paid SSL (RapidSSL/GeoTrust) |
|---|---|---|---|
| ราคา | ฟรี | ฟรี | 1,000 บาท/ปีขึ้นไป |
| Browser Trust โดยตรง | ไม่ (ต้องผ่าน Cloudflare) | ใช่ | ใช่ |
| อายุสูงสุด | 15 ปี | 90 วัน (ต่ออายุอัตโนมัติ) | 1–3 ปี |
| เหมาะกับ | Origin ที่ใช้ Cloudflare ตลอด | เว็บทั่วไปที่ไม่ใช้ Cloudflare | ธุรกิจที่ต้องการ Warranty และ OV/EV |
| รองรับ Wildcard | ใช่ (ฟรี) | ใช่ (ผ่าน DNS challenge) | ใช่ (ราคาสูงกว่า) |
Cloudflare IP Ranges และการ Lock Down เซิร์ฟเวอร์
เมื่อใช้ Cloudflare Origin Certificate ร่วมกับ Authenticated Origin Pulls แล้ว ขั้นตอนถัดไปที่ผู้ดูแลระบบจำนวนมากทำเพิ่มเติมคือการ Lock Down เซิร์ฟเวอร์ให้รับ Connection เฉพาะจาก IP ของ Cloudflare เท่านั้น ป้องกันการเข้าถึง Origin Server โดยตรง
Cloudflare เผยแพร่รายการ IP Ranges ไว้สาธารณะที่ https://www.cloudflare.com/ips/ สามารถนำมาใช้กับ Firewall ได้ดังนี้:
# iptables — รับเฉพาะ Port 443 จาก Cloudflare IPv4
# ตัวอย่าง IP Ranges ของ Cloudflare (ตรวจ list ล่าสุดที่ cloudflare.com/ips/)
iptables -A INPUT -p tcp --dport 443 -s 173.245.48.0/20 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -s 103.21.244.0/22 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -s 103.22.200.0/22 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP
คำเตือน: ก่อน Lock Down ด้วย iptables ตรวจสอบให้แน่ใจว่า SSH (Port 22) ของคุณอนุญาต IP ที่คุณใช้งานอยู่ไว้แล้ว มิฉะนั้นอาจถูก Lock ออกจาก Server ตัวเอง
การตั้งค่า HSTS และ Always Use HTTPS ร่วมกัน
เมื่อติดตั้ง Origin Certificate และตั้งค่า Full (Strict) เรียบร้อยแล้ว แนะนำให้เปิด Security Features เพิ่มเติมใน Cloudflare เพื่อเสริมความปลอดภัยและ SEO
1. Always Use HTTPS
ใน Cloudflare Dashboard → SSL/TLS → Edge Certificates → เปิด "Always Use HTTPS" — Cloudflare จะ Redirect ทุก Request ที่มาด้วย HTTP ไปยัง HTTPS โดยอัตโนมัติ ไม่จำเป็นต้องตั้ง Redirect ใน Nginx หรือ Apache อีกต่อไป
2. HTTP Strict Transport Security (HSTS)
เปิด HSTS ผ่าน Cloudflare Dashboard → SSL/TLS → Edge Certificates → HTTP Strict Transport Security (HSTS) การตั้งค่า HSTS Header แจ้งให้ Browser ของผู้ใช้รู้ว่าเว็บนี้ใช้ HTTPS เท่านั้น และ Browser จะไม่พยายาม HTTP อีกเลย
| การตั้งค่า HSTS | ค่าแนะนำ | หมายเหตุ |
|---|---|---|
| Max Age | 6 เดือน (เริ่มต้น) | เพิ่มเป็น 1 ปีเมื่อมั่นใจแล้ว |
| Include Subdomains | เปิด | ถ้า Subdomain ทั้งหมดเป็น HTTPS |
| Preload | ไม่เปิดในตอนแรก | Preload ยากกลับมาแก้ถ้าเปลี่ยนใจ |
3. Minimum TLS Version
ตั้ง Minimum TLS Version เป็น TLS 1.2 ใน Cloudflare เพื่อ Drop Client เก่าที่ใช้ TLS 1.0/1.1 ซึ่งถือว่าไม่ปลอดภัยในปัจจุบัน ส่วน TLS 1.3 รองรับทั้ง Cloudflare Edge และ Origin Server ที่ใช้ Nginx/Apache เวอร์ชันใหม่ได้อยู่แล้ว
คำถามที่พบบ่อย (FAQ)
Cloudflare Origin Certificate ต่างจาก Let's Encrypt อย่างไร?
Let's Encrypt เป็น Public CA ที่เบราว์เซอร์ทุกตัวเชื่อถือ ใช้ได้ทั้งกับและไม่มี Cloudflare Cloudflare Origin Certificate ใช้ได้เฉพาะ origin ที่อยู่หลัง Cloudflare เท่านั้น ถ้าเปลี่ยนออกจาก Cloudflare ต้องเปลี่ยน Certificate ด้วย
Origin Certificate ใช้กับ Hosting แบบ Shared ได้ไหม?
ขึ้นอยู่กับ Hosting Provider บน DirectAdmin Hosting สามารถอัปโหลด Custom SSL Certificate ได้ผ่าน SSL/TLS Manager ใน DirectAdmin Panel ถ้า Hosting ของ AsiaGB รองรับ Custom Certificate ก็สามารถติดตั้งได้
Origin Certificate หมดอายุต้องทำอย่างไร?
ต้อง generate Certificate ใหม่ใน Cloudflare Dashboard แล้วนำไฟล์ใหม่ไปแทนที่บนเซิร์ฟเวอร์ แนะนำให้เลือกอายุ 15 ปีเพื่อลดความถี่ในการต่ออายุ
Cloudflare SSL กับ WordPress: การตั้งค่าเพิ่มเติมที่ควรรู้
เว็บ WordPress ที่ใช้ Cloudflare Origin Certificate ต้องระวัง Configuration บางอย่างเพิ่มเติม โดยเฉพาะในส่วนของ WordPress Address, Home URL และการตั้งค่า Proxy ที่ถูกต้อง เพื่อหลีกเลี่ยงปัญหา Redirect Loop หรือ Mixed Content ที่พบบ่อยในผู้ใช้ WordPress ใหม่กับ Cloudflare
1. ตั้งค่า WordPress Site URL ให้ถูกต้อง
ใน wp-config.php ให้กำหนด Site URL เป็น HTTPS เสมอ เพื่อให้ WordPress ไม่สร้าง Link แบบ HTTP ที่ทำให้เกิด Mixed Content Warning:
define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');
2. แก้ปัญหา Redirect Loop เมื่อใช้ Cloudflare Flexible SSL
ปัญหา Redirect Loop ที่พบบ่อยที่สุดเกิดจากการตั้ง Cloudflare SSL Mode เป็น "Flexible" ขณะที่ WordPress ตั้งค่าให้ Redirect HTTP → HTTPS เองด้วย ทำให้เกิด Loop ไม่สิ้นสุด วิธีแก้คือเปลี่ยน SSL Mode เป็น "Full (Strict)" ตามที่แนะนำในบทความนี้ หรือเพิ่มโค้ดใน wp-config.php เพื่อบอก WordPress ว่า Request ที่เข้ามาจาก Cloudflare นั้นเป็น HTTPS แม้ Cloudflare จะส่งต่อมาด้วย HTTP:
// เพิ่มในตอนต้นของ wp-config.php ก่อน require 'wp-settings.php'
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])
&& $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
3. Mixed Content ที่ยังเหลืออยู่หลังเปิด HTTPS
หลังเปลี่ยน Site URL เป็น HTTPS แล้ว รูปภาพและลิงก์ใน Post เก่าที่ยังเป็น http:// จะทำให้เกิด Mixed Content Warning ใช้ Plugin Better Search Replace เพื่อ Find & Replace URL ใน Database ทั้งหมด หรือใช้คำสั่ง WP-CLI:
# WP-CLI — Replace HTTP with HTTPS in entire database
wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' \
--skip-columns=guid --report-changed-only
การ Monitor SSL Certificate ก่อนหมดอายุ
แม้ Cloudflare Origin Certificate จะมีอายุสูงสุด 15 ปี แต่ถ้าเลือกอายุสั้นกว่านั้นหรือต้องใช้ Let's Encrypt ควบคู่กัน การ Monitor Certificate ให้ล่วงหน้าเป็นเรื่องสำคัญ เพราะ Certificate ที่หมดอายุทำให้เว็บขึ้น Error ทันทีโดยไม่มีสัญญาณเตือนล่วงหน้าสำหรับผู้เข้าชม
| วิธี Monitor | ราคา | เหมาะกับ |
|---|---|---|
| Cloudflare Dashboard Alert | ฟรี | Origin Certificate ของ Cloudflare เท่านั้น |
| SSL Labs API | ฟรี | ตรวจสอบ Grade + expiry date |
| openssl CLI | ฟรี | Cron Job ตรวจสอบรายวัน + Email Alert |
| Uptime Monitoring Service | ฟรี/จ่าย | Monitor ครบทั้ง Uptime + SSL expiry |
วิธีง่ายที่สุดคือใช้ openssl ใน Cron Job ตรวจสอบวันหมดอายุแล้วส่ง Email เตือน:
# ตรวจสอบวันหมดอายุ SSL Certificate
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null \
| openssl x509 -noout -dates
ความแตกต่างระหว่าง Cloudflare Free, Pro และ Business สำหรับ SSL
Origin Certificate ใช้ได้ในทุก Plan ของ Cloudflare รวมถึง Free Plan แต่ Feature SSL ขั้นสูงบางอย่างต้องการ Plan ที่สูงขึ้น ทำความเข้าใจก่อนตัดสินใจ
- Free Plan: Universal SSL, Origin Certificate, Full (Strict) Mode, Always Use HTTPS, HSTS — ครบสำหรับการใช้งานทั่วไป
- Pro Plan ($20/เดือน): เพิ่ม Advanced Certificate Manager (ACM), Custom TLS Certificate, TLS 1.3 Optimization
- Business Plan ($200/เดือน): เพิ่ม Custom SSL Upload (นำ Certificate ที่ซื้อจาก CA อื่นมาติดตั้งบน Cloudflare Edge ได้โดยตรง)
- Enterprise: Dedicated SSL Certificate, Custom Certificate Bundles, Multi-level Subdomain Wildcard
สรุปสำหรับผู้ใช้ทั่วไป: Cloudflare Free Plan + Origin Certificate + Full (Strict) Mode ให้ความปลอดภัยระดับสูงสุดที่ผู้ใช้ทั่วไปต้องการได้โดยไม่มีค่าใช้จ่ายเพิ่มเติม ถ้าต้องการ Dedicated IP หรือ Custom Certificate บน Edge ถึงจะต้องอัปเกรด Plan
ต้องการ SSL Certificate สำหรับเว็บที่ไม่ได้ใช้ Cloudflare?
AsiaGB ให้บริการ SSL Certificate จาก RapidSSL, GeoTrust, DigiCert ที่ใช้ได้ทุกสถานการณ์ DV SSL เริ่มต้น 1,000 บาท/ปี Wildcard SSL 5,000 บาท/ปี
ดู SSL Certificate ทั้งหมด