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