最近在忙別的專案設定伺服器上遇到很特別的問題,所以在這邊好好的筆記一下,該情境使用環境為nginx
前序
這個問題主要只發生在火狐 Firefox 使用者瀏覽某些網站會發生的問題,用別的瀏覽器不會。
情境
大多數遇到的問題網頁都是使用了Let’s Encrypt的TLS,我個人一開始推測應該是因為Firefox的安全性要求比較高產生的影響。
找出原因
HTTPS connection fails with “MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING”
雖然是距今4年前的討論,不過這代表是以前就發生這問題了,不是現在才有,然後下面有回文叫人把enable_ocsp_must_staple這個關掉後強制重整 你乾脆叫使用者重灌好了
不過由這個討論可以看的出來應該是OCSP的問題,所以我們直接從這部份找解法
解決方法
在出現這個問題的nginx configure裡加上以下這四行基本上就解掉了
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 1.1.1.1 valid=300s;
resolver_timeout 5s;有興趣看裡面的設定可以看看最底下的nginx說明;這邊大概說一下
ssl_stapling on/off 就是字面上的意思,stapling of OCSP response的開關,預設是關閉的 註1
resolver 8.8.8.8 1.1.1.1 valid=300s 這個先說,因為上面的ssl_stapling打開的時候就一定要設定這個參數。主要是在解析地址用,預設的情況下解析會同時查找IPv4和IPv6(IPv6可以關閉查詢)。 註2
ssl_stapling_verify on 驗證OCSP response的開關;為了驗證生效會使用 ssl_trusted_certificate將伺服器證書頒發的證書和所有中間證書配置為受信任的。 註3
resolver_timeout 5s;設定解析的timeout時間 註4
相關出處
HTTPS connection fails with “MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING”