Lingkungan
-
Sertifikat SSL QTS: v2.2.73 (build 20260310, diperbarui 2026-07-09 — terbaru)
-
Domain: DDNS kustom (
*.myqnapcloud.com) -
Nginx sebagai frontend Home Assistant
Bug
Setiap kali Let’s Encrypt melakukan pembaruan, aplikasi biner letsencrypt_agent_cli milik QcloudSSLCertificate menambahkan sertifikat DST Root CA X3 yang sudah kedaluwarsa (kedaluwarsa 30 September 2021) ke /etc/stunnel/uca.pem. Hal ini merusak verifikasi TLS untuk klien yang ketat seperti Alexa Smart Home, AWS Lambda, curl tanpa -k, dll., meskipun sertifikat daun dan rantai sudah benar.
Penyebab utama
Langkah acme-tiny benar-benar hanya mengambil intermediate YR1:
cert/chain → hanya YR1 (bagus)
Tapi kemudian letsencrypt_agent_cli menulis intermediate.pem (yang disalin ke uca.pem) sebagai:
cert/intermediate.pem → YR1 + DST Root CA X3 (kedaluwarsa 2021) (buruk)
Sertifikat DST di-hardcode ke dalam proses perakitan sertifikat pada biner tersebut. cert/chain (output asli acme-tiny) bersih — korupsi terjadi di dalam biner yang dikompilasi.
Ini kemungkinan terjadi karena LetsEncrypt mengubah hierarki CA pada 27 Mei 2026 (sumber1)
Verifikasi
# cert/chain — bersih
openssl x509 -noout -subject -dates -in /mnt/ext/opt/QcloudSSLCertificate/cert/chain
# subject=C=US, O=Let’s Encrypt, CN=YR1 | notAfter=Sep 2 23:59:59 2028 GMT (bagus)
# cert/intermediate.pem — rusak
awk ‘…’ /mnt/ext/opt/QcloudSSLCertificate/cert/intermediate.pem | openssl x509 -noout -subject -dates
# Cert 1: YR1 notAfter=Sep 2 2028 (bagus)
# Cert 2: DST Root CA X3 notAfter=Sep 30 14:01:15 2021 (buruk)
Dampak
Browser mengabaikan sertifikat tambahan ini dan tetap bisa melakukan verifikasi. Namun, klien apapun yang melakukan validasi rantai secara ketat (Alexa Smart Home skill, AWS Lambda, curl standar) akan mengalami error SSL: unable to get local issuer certificate dan gagal.
Solusi sementara (sampai diperbaiki)
Skrip cron harian yang membangun ulang nginx.pem dari file bersih, men-strip sertifikat kedaluwarsa, dan menambahkan cross-signed ISRG Root YR:
0 4 * * * /share/CACHEDEV1_DATA/build_nginx_pem.sh
Perbaikan dibutuhkan
Hapus hardcode DST Root CA X3 dari letsencrypt_agent_cli. Biner harus hanya menggunakan sertifikat dalam cert/chain saat membangun intermediate.pem/uca.pem.
Solusi OSS lain yang sudah diperbaiki: