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

AWS

最近公司的系統發現如果連 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/