在 Chrome 上出現 “NET::ERR_CERT_INVALID” 原本的 “繼續前往 192.168.1.1 網站(不安全)” 消失了

在 iOS 13 與 macOS 10.15 以後的版本對於信任憑證有更新,可以參考 Requirements for trusted certificates in iOS 13 and macOS 10.15,如果憑證不被信任就會出現 “NET::ERR_CERT_INVALID”,但是這種情況下不會出現 “繼續前往 192.168.1.1 網站(不安全)” 的選項可以繼續。

而在舊版系統中因為會信任憑證,所以出現的錯誤是 “NET::ERR_CERT_AUTHORITY_INVALID” 就有 “繼續前往 192.168.1.1 網站(不安全)” 的選項繼續網站。

“NET::ERR_CERT_INVALID” 問題解決方法

這個問題可以直接在網站中間輸入 “thisisunsafe”,在 Chrome 上面就可以直接信任憑證繼續使用網站。

在憑證加入 EKU (ExtendedKeyUsage 擴展名)

但是這樣很麻煩所以可以修改產生憑證的方法改成使用如下,就可以讓錯誤變成 “NET::ERR_CERT_AUTHORITY_INVALID” 讓網站可以繼續使用了。

openssl req \
  -newkey rsa:2048 \
  -x509 \
  -new \
  -nodes \
  -keyout rootca.key \
  -out rootca.csr  \
  -subj /CN=localhost   \
  -sha256  \
  -days 825  \
  -addext "extendedKeyUsage = serverAuth, clientAuth"

serverAuth 與 clientAuth 對應的 OID

而 extendedKeyUsage 的 serverAuth 與 clientAuth 是對應到相對的 OID,所以可以修改成extendedKeyUsage = 1.3.6.1.5.5.7.3.1
伺服器驗證 (serverAuth):1.3.6.1.5.5.7.3.1
用戶端驗證 (clientAuth):1.3.6.1.5.5.7.3.2