バッテリー切れから復旧したMacBookがネットワークに繋がらない問題 →原因は意外な所にあった

2021年11月19日金曜日

Mac 備忘録

t f B! P L

先日、業務でMacBook Proを使用中に電源ケーブルの差し忘れでバッテリー切れになりOSが強制終了してしまうトラブルに見舞われました。
それ自体はMacBookを充電して再起動すれば解決だったのですが、その後何故かネットワークに繋がらなくなってしまいました。

繋がらないのはブラウザやアンチウィルスソフト等のGUIアプリケーションを用いたインターネットへの通信。
とりあえずファイアウォールやルータの設定を確認してみたところ特に問題はなし。名前解決もできており、pingやnslookupコマンドも問題なく通る。
当初は全く原因が分からなかったのですが、小一時間悩んで色々と調べた結果、バッテリー切れでの影響(?)でMacBookの時刻設定が大きく狂っており、これが原因で通信が出来ていないことが分かりました。

何故時刻設定が狂っていた?

何度か検証してみたところ、どうやらMacBookがバッテリー切れで強制終了されると時刻設定の情報が消えてしまうようです。
ちなみに私の環境では再起動後の日付は 2020年1月1日 になっていました。

何故時刻設定がおかしいとネットワークに繋がらない?

途中で気付いたのですが、繋がらなかったのは全てHTTPS通信でした。(HTTP通信も試したつもりだったがサーバ側でHTTPSにリダイレクトされていたらしい)
そしてHTTPS通信ができていなかった原因ですが、MacBookの時刻設定が狂ったことで現在日時がサーバ証明書の有効期間と乖離してしまい、クライアント側(ブラウザ、アンチウィルスソフト等)が通信相手のサーバを証明書の有効期限が切れた危険なサイトと判断して通信を中断していたことによるものでした。


上記はFirefoxの例です。
ブラウザによっては証明書のエラーであることが一目で分かるようなメッセージが表示されるようですが、残念ながら私が調査で使用していたSafariでは分からなかったです。


サーバ証明書の有効期限とか情報処理安全確保支援士試験でも勉強したはずなのに失念していた…。
思わぬところで勉強不足を再認識させられた出来事でした。

自己紹介

SESから工場へ転職 ⇒ その後SESへ出戻った底辺客先常駐エンジニアです。 主に組み込み、オープン系の現場で詳細設計~実装を担当しています。 使用言語:C/C++/C#/Java/JavaScript (Node.js)/Python etc..

QooQ