วิธีแก้ปัญหา Let’s Encrypt กับ Root Certificate Expire ในวันที่ 30 กันยายน 2021

ปัญหา เช้านี้ (30 กันยายน 2021) พบว่า อยู่ ๆ เว็บเซิร์ฟเวอร์ที่ให้บริการ ซึ่งใช้ Let’s Encrypt ก็ ขึ้นหน้า “This connection is not private” เป็นเฉพาะกับ เครื่อง Mac, iPhone, iPad ไม่ว่าจะใช้ Safari หรือ Chrome ก็ตาม

เอ่ เพิ่ง Renew ไปเมื่อเดือนที่แล้ว เกิดอะไรขึ้น

ลองคลิกที่รูป Key แล้ว View Certificate พบว่า

อ้าว … ไรว้า

ก็ Google ดู พบว่า Root CA ของ Let’s Encrypt “รุ่นเก่า” ทะยอยหมดอายุ

https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/

กล่าคือ ถ้าของใคร Root CA (บนสุดของภาพ) เป็น

DST Root CA X3

จะทำให้การใช้งานจาก Web Browser บน Apple ใช้งานไม่ได้

ก็ restart ดู ก็ยังไม่หาย เอ่ ทำไมนะ

ขอ Renew ใหม่ ก็ยังไม่หาย

หาไปหามา ไปพบ

https://community.letsencrypt.org/t/r3-certificate-expired-macos/160852

เค้าบอกว่า ลองดูซิ ว่า Root CA ตัวใหม่ที่ได้มา เป็นของอะไร ด้วยคำสั่ง

openssl crl2pkcs7 -nocrl -certfile "fullchain.pem" | openssl pkcs7 -noout -print_certs

คำสั่งนี้ ทำที่เดียวกันกับไฟล์ fullchain.pem

พบว่า

issuer=C = US, O = Let's Encrypt, CN = R3


subject=C = US, O = Let's Encrypt, CN = R3

issuer=C = US, O = Internet Security Research Group, CN = ISRG Root X1


subject=C = US, O = Internet Security Research Group, CN = ISRG Root X1

issuer=O = Digital Signature Trust Co., CN = DST Root CA X3

เอ่ …. ก็ได้ Root CA เป็น ISRG Root X1 แล้วนะ ทำไมยังใช้ไม่ได้

ไปตรวจสอบดู httpd.conf

อ้อ …

<VirtualHost *:443>
   SSLEngine on
   SSLCertificateFile /etc/ssl/letsencrypt/cert.pem
   SSLCertificateKeyFile /etc/ssl/letsencrypt/privkey.pem
</VirtualHost>

เราอ้างอิงแค่ cert.perm

วิธีแก้ไขคือ ไปเพิ่ม

   SSLCertificateChainFile /etc/ssl/letsencrypt/fullchain.pem

ให้เป็นแบบนี้

<VirtualHost *:443>
   SSLEngine on
   SSLCertificateChainFile /etc/ssl/letsencrypt/fullchain.pem
   SSLCertificateFile /etc/ssl/letsencrypt/cert.pem
   SSLCertificateKeyFile /etc/ssl/letsencrypt/privkey.pem
</VirtualHost>

จากนั้น ก็ restart

เรียบร้อย

หวังว่าจะเป็นประโยชน์ครับ