Let’s Encrypt เป็นผู้ออกใบรับรองดิจิตอล (Certificate Authority) ซึ่งมี Internet Security Research Group เป็นผู้สนับสนุน มีจุดมุ่งหมายที่จะให้เกิดระบบความปลอดภัยบนเวปไซด์ และให้เข้าถึงการใช้ SSL ได้โดยง่าย ที่สำคัญ ฟรี! ซึ่งช่วยให้เราลดภาระค่าใช้จ่ายรายปีในการเช่าซื้อ SSL
(1) Download เครื่องมือสำหรับสร้าง SSL Certificate (letsencrypt-win-simple)
letsencrypt-win-simple เป็นโปรแกรมสำหรับใช้สร้าง SSL Certificate บน Windows สามารถ Downlaod ได้ที่นี่ : https://goo.gl/rBJ95d
(2) ทดสอบการสร้าง SSL Certificate
หลังจากที่ Download ไฟล์มาแล้วให้เราแตก zip ออกมา และทดสอบการสร้าง SSL Certificate
ให้เปิด Command Prompt หรือ พิมพ์ cmd ที่ Run แล้วพิมพ์คำสั่ง
cd C:\letsencrypt-win-simple
สั่งสร้าง Certificate บน Test mode โดยใช้คำสั่ง
letsencrypt.exe --manualhost <domain-name> --webroot <document-root> --test
<domain-name> คือ ชื่อเวปไซด์ที่ต้องการสร้าง Certifacate เช่น www.tong.com <document-root> คือ Root Path ของเวปไซด์ เช่น "C:\xampp\htdocs"
ตัวอย่าง
letsencrypt.exe --manualhost www.tong.com --webroot "C:\xampp\htdocs" --test
ถ้าสร้างได้สำเร็จจะปรากฏข้อความดังนี้
Authorizing Identifier <domain-name> Using Challenge Type http-01
Writing challenge answer to <document-root>\.well-known/acme-challenge/<challenge-text>
Answer should now be browsable at <document-root>/.well-known/acme-challenge/<challenge-text>
Submitting answer
Refreshing authorization
Authorization Result: valid
Requesting Certificate
Request Status: Created
Saving Certificate to C:\Users\<username>\AppData\Roaming\letsencrypt-win-simple\httpsacme-stage.api.letsencrypt.org\<domain-name>-crt.der
Saving Issuer Certificate to D:\Users\<username>\AppData\Roaming\letsencrypt-win-simple\httpsacme-stage.api.letsencrypt.org\ca-<hex>-crt.pem
Saving Certificate to D:\Users\<username>\AppData\Roaming\letsencrypt-win-simple\httpsacme-stage.api.letsencrypt.org\<domain-name>-all.pfx
(3) สร้าง SSL Certificate
เมื่อทดสอบผ่านแล้วให้เราสั่งสร้าง SSL Certificate โดยใช้คำสั่ง (เอาคำสั่ง --test ออก)
letsencrypt.exe --manualhost <domain-name> --webroot <document-root>
(4) แก้ Config Apache (httpd.conf)
เพิ่ม SSL Certificate Path ลงใน <VirtualHost>
** อย่าลืมเปิด LoadModule vhost_alias_module modules/mod_vhost_alias.so
ด้วยนะครับ
<VirtualHost *:443> ServerAdmin admin@tong.com ServerName www.tong.com SSLEngine on SSLCertificateFile "C:/Users/<username>/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/<domain-name>-crt.pem" SSLCertificateKeyFile "C:/Users/<username>/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/<domain-name>-key.pem" SSLCertificateChainFile "C:/Users/<username>/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/<domain-name>-chain.pem" DocumentRoot "C:/xampp/htdocs" <Directory "C:/xampp/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost>
(5) Restart Apache
------ The END ------หมายเหตุ : ให้ระวังในกรณีที่ Config RootDirectory ของ HTTP กับ HTTPS ไว้คนล่ะที่ เพราะ Let's Encrypt จะตรวจสอบ Key กลับมาที่ Port HTTP อาจทำให้เกิด Error ไม่พบ Key สำหรับตรวจสอบได้ วิธีการแก้ไข คือ ให้สร้าง SSL ด้วย Path ที่เป็น HTTP แล้ว Copy Folder ".well-know" ไปวางไว้ใน HTTPS Path ด้วยหวังว่าคงจะได้รับประโยชน์จากบทความนี้ไม่มากก็น้อยนะครับ