標籤:

iTunes無法驗證伺服器身份解決方案

今日打開iTunes會頻繁提示一個窗口,內容為「iTunes無法驗證伺服器 s.mzsatic.com. 的身份」,這個問題非常煩人,會導致無法與Apple伺服器取得聯繫,從而導致無法驗證固件更新、無法使用Apple Music等等,iTunes會變成一個離線音樂播放器。

問題分析與解決

導致問題的根本原因是網站證書失效。導致問題的首要因素是中國電信劫持了該網站。

觀察了一下該網站證書,s.mzstatic.com.的網站證書是頒發自webssl.chinanetcenter.com.的(各位可以看到ChinaNet的字樣,和中國電信有脫不開的關係),這樣就會導致HTTPS證書的主機名和被頒發證書原機構不符合,被判斷有偽造伺服器嫌疑,iTunes為了保證通訊安全,所以終止本次通訊,並提示用戶錯誤。

通常這種情況是由於伺服器配置錯誤,或是被攔截攻擊導致的,這種情況會被判定為不安全的傳輸,認定證書無效。

問題歸根結題出現在證書,那麼解決方案就有兩種,第一種就是按照國內的解析走,但是信任證書。第二種就是,繞路,不走尋常的國內DNS解析,手動將其指向國外地址,這樣就不會出現此問題。

當然每種方法都有代價,您需要慎重考慮後選擇出適合您的方案。

國內DNS解析結果

Google DNS解析結果

說人話版

如果您實在無法理解我上面到底說了什麼,那麼這裡請看這裡。

為什麼iTunes報錯?

假設你是iTunes,22歲,程序猿。每天早上喝杯牛奶,然後上班,有一個固定的牛奶配送員。突然有一天一個陌生人(電信運營商)給了你一瓶牛奶,並告訴你這個牛奶很安全(失效證書),你可以放心飲用。你為了保證你能好好活著,選擇不喝。iTunes為了保證通訊安全,發現問題後,選擇中斷連接。

怎麼解決這個問題?

就是喝與不喝,或者怎麼喝到牛奶的問題。

方法1:你信任這個陌生人(手動信任證書),並承擔飲用牛奶後的一切後果,是死是活自己看著辦,你讓我喝到牛奶就好。代價是可能會反胃、狗帶(DNS被劫持後,黑客可能會通過某些手段竊取隱私、數據等未知危險行為)等。

方法2:為了安全地喝到牛奶,我不信任陌生人,我選擇自己步行、坐車、打車、坐飛機(改變原訪問路線,但訪問方式可不同)去附近最近的商店,然後購買相同品牌放心可靠的牛奶,再飲用。代價是你會花更多的時間(不同的方法可能花費更多的代|理流量、學習成本等),一旦商店沒營業,既耽誤了時間又沒得到想買的牛奶(一旦指向的IP失效或變更,那麼訪問將失效)。

準備工作

退出正在運行的iTunes。

方案一:手動信任證書

注意:此方法的原理是,相信運營商劫持的後的網站證書,所以可能面臨劫持後,被黑客竊取隱私數據的風險。

以macOS Sierra系統為例。

  1. 打開Safari瀏覽器,地址欄輸入s.mzstatic.com.(一定加上英文字元點),並訪問。
  2. 訪問過程中,Safari彈出提示框,警告用戶該網站證書出現問題。如圖,勾選「使用信任webssl.chinanetcenter.com」,然後點擊「繼續」按鈕即可。

  3. 訪問結束後,退出瀏覽器即可。重新啟動iTunes,會發現已經成功可以聯繫Apple伺服器(例如我的iTunes提示了可以更新至iOS 10.0.2)。

方案二:修改線路

注意:此方案可能給您多種方法選擇,不同的方法可能花銷更多的V|P|N流量、時間等,而且一旦指向IP地址失效,您需要手動維護,學習成本較高。

方案二之所以成為修改線路,意味著您可以用各種方式避開國內解析。例如:

  • 使用V|P|N
  • 使用代|理
  • 修改DNS伺服器(修改後需清空DNS緩存)

只要是我可以改變路線的方式,都可以用。

為了避免不必要的問題和糾紛,並以最簡單學習成本為目的,本文僅採用修改Hosts文件指向的方式解決問題。

以macOS Sierra為例。

  1. 打開「應用程序」下的「終端」App。

  2. 輸入命令sudo -s,並輸入口令(當前用戶的登錄系統密碼),以獲得修改hosts文件的許可權。正確輸入密碼後,如圖所示,主機名位置顯示bash-3.2#

  3. 輸入命令 echo "104.70.135.100 s.mzstatic.com" >> /etc/hosts ,敲擊回車,使hosts文件末尾追加指向條目。然後再輸入命令dscacheutil -flushdns以清空DNS緩存。

  4. 運行iTunes即可。

方案對比

注意事項

  1. macOS不同的系統,刷新DNS命令均有不同。請自行查閱相關信息。
  2. 方案二,步驟3,注意重定向符號的使用,千萬不要輸入成" > ",而是" >> "。高級玩家可以使用高級工具如Gas Mask、iHosts等。

F&Q

Q: 104.70.135.100怎麼來的?可以換成別的嗎?

A: 可以,使用dig命令,並指向非國內運營商DNS伺服器,獲取到的A記錄即可作為被指向的地址。參考「問題分析與解決」版塊的配圖。我使用的命令:dig s.mzstatic.com. @8.8.8.8

歡迎各位對文章批評指正,歡迎各位交流討論,如果有任何疑惑或問題,請評論或聯繫我。

新浪微博:@Hackl0us

Twitter: @Hackl0us

推薦閱讀:

iTunes 是好軟體嗎?
Win10安裝iTunes安裝出現安裝彙編microsoft.vc80.crt怎麼辦?
充進Apple ID的錢能取出來嗎?
為什麼我電腦上的iTunes識別不了iPhone?

TAG:iOS | macOS | iTunes |