AWS IoT 出現 negotiation failed with error certificate is untrusted 更新憑證方法

最近公司的系統發現如果連 AWS IoT 會出現 “negotiation failed with error certificate is untrusted” 我查了一下發現是因為 symantec certificate authority 的關係

發生原因

我們可以直接一起來看一下舊版的網址大概長得像是 https://example.iot.us-west-2.amazonaws.com/ 連進去之後可以看到,我們這張憑證其實是經由賽門鐵克(Symantec)所簽發的,所以才會發生 “NET::ERR_CERT_AUTHORITY_INVALID” 的問題

2018/10/17 Chrome 70 的更新移除了 Symantec 的憑證,所以連線會出現錯誤

解決方法

可以在官方文件發現我們可以把網址換到 Amazon Trust Services(ATS),更新方法只要輸入

$ aws iot describe-endpoint --endpoint-type iot:Data-ATS

{
    "endpointAddress": "example-ats.iot.us-west-2.amazonaws.com"
}

轉換完會收到網址,這邊換完之後會發現 AWS Console 剩下新的網址,舊的網址雖然不會顯示,不過還是可以使用的

檢查憑證

來看一下憑證的資訊就可以看到簽發人變成 Amazon 了

參考資料

  • https://www.ithome.com.tw/news/99633
  • https://aws.amazon.com/tw/blogs/iot/aws-iot-core-ats-endpoints/