Let’s Encrypt เป็นหน่วยงานออกใบรับรอง CA (Certificate Authority) ฟรี แต่จะมีอายุเพียง 90 วันเท่านั้น แต่เราสามารถต่ออายุได้เรื่อยๆ หากใกล้หมดอายุ
เตรียมตัวก่อนติดตั้ง
– ติดตั้ง Xampp For Windows (Download)
– Domain จะต้องชี้มาที่ IP ของ Server เรียบร้อยแล้ว
– เปิด Port Firewall 80 , 443 ให้สามารถเชื่อมต่อได้
หากเตรียมตัวเรียบร้อยแล้ว เรามาเริ่มติดตั้งกันเลย
1. Download Program Win-ACME (Download)
2. แตกไฟล์ Win-acme ดังตัวอย่างแตกไฟล์ไปที่ C:\
3. เปิด Command Prompt และเข้าไปยัง Path ที่แตกไฟล์ไว้ก่อนหน้า นี้ครับ และ รันคำสั่ง
wacs.exe --target manual --host www.example.com --validation filesystem --webroot "C:\htdocs\www\example.com" --store pemfiles --pemfilespath C:\apache-certs#Example C:\win-acme>wacs.exe --target manual --host test.com,www.test.com --validation filesystem --webroot "C:\xampp\htdocs" --store pemfiles --pemfilespath C:\xampp\apache\conf
- host = ใส่ Domain ที่ต้องการติดตั้ง SSL (ทั้ง www และ non-www)
- webroot = ใส่ Path ที่อยู่ของไฟล์เว็บ
- pemfilespath = ใส่ Path เพื่อเก็บไฟล์ Cert
4. หลังจากรันคำสั่งแล้วหากสำเร็จจะแสดงดังนี้ และจะได้ไฟล์ Cert มาครับ
Next renewal scheduled at 2020/10/12 14:49:05 Certificate [Manual] yourdomain.com created
กรณีไม่สำเร็จ จะแจ้งดังนี้ครับ ให้ตรวจสอบข้อความ Error ว่าติดปัญหาที่ตรงไหนครับ
Create certificate failed: [youdomain.com] Validation failed
5. ต่อไปจะเป็นตั้งค่าใน ไฟล์ httpd-vhosts.conf เพื่อเพิ่ม Virtual Host 443 และ SSL Cert ที่พึงได้มาลงไป
โดย Path ของ Xampp จะอยู่ที่ C:\xampp\apache\conf\extra\httpd-vhosts.conf
<VirtualHost *:80> ServerAdmin you@email.com DocumentRoot "C:/xampp/htdocs" ServerName youdomain.com ServerAlias youdomain.com RewriteEngine On # Redirect to the HTTPS site RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !^/\.well-known RewriteRule ^/?(.*)$ https://youdomain.com/$1 [NE,L,R=301] </VirtualHost> <VirtualHost *:443> DocumentRoot "C:/xampp/htdocs" ServerAdmin you@email.com ServerName youdomain.com RewriteEngine On # Redirect to the correct domain name RewriteCond %{HTTP_HOST} !^youdomain.com$ [NC] RewriteRule ^/?(.*)$ https://youdomain.com/$1 [NE,L,R=301] SSLEngine on SSLCertificateFile "C:\xampp\apache\conf\youdomain.com-crt.pem" SSLCertificateKeyFile "C:\xampp\apache\conf\youdomain.com-key.pem" SSLCertificateChainFile "C:\xampp\apache\conf\youdomain.com-chain.pem" </VirtualHost>
6. Restart Apache และลองเข้าทดสอบโดเมนดูครับ หากขึ้นเป็น HTTPS เป็นอันเรียบร้อยแล้วครับ
การต่ออายุ SSL Let’s encrypt
สามารถใช้คำสั่งที่ในขั้นตอนที่ 3 ได้เลยครับ หรือ หากต้องการทำแบบ ต่ออายุอัตโนมัติ ให้ทำไฟล์ .bat ใส่คำสั่งดังกล่าว และตั้งค่าใน task scheduler ใน Windows ครับ
Document : https://www.win-acme.com/manual/advanced-use/examples/apache