ざっくり
- macOSをCatalinaにアップデートしたら自己署名証明書を信頼しなくなる(らしい)
- この影響か、Chromeで「詳細情報→このページにアクセスする(安全ではありません)」というUIが消えていた。→「あれ、いつもの方法でアクセスできない!」となった。
- Chromeのウインドウがアクティブな状態で「thisisunsafe」と打つと行けた。
- (やってない&できるかわからないけど)本当は自分の信頼する証明書をどこかにおいておき、それをJupyterHubに登録するようなブートストラップアクションを作ったりするほうが良い?
参考
- macOS Catalina Chrome Self-signed Certificate Issues
- iOS 13 および macOS 10.15 における信頼済み証明書の要件
- Chromiumのエラーリスト
- マスターノードとノートブックサーバーに接続する -- Amazon EMR公式ドキュメント
もうちょっと詳しく
EMRやJupyterHubの話じゃなくなっていきますが…笑
Catalinaにする前
macOSをアップデートする前から、EMRのJupyterHubに接続する際にセキュリティの警告は出ていました。
が、ChromeのUIから「詳細情報を表示→〜〜〜〜.comへアクセスする(安全ではありません)」をクリックすれば、そのまま飛べました。
よく見ると、このときのエラーコードは NET::ERR_CERT_AUTHORITY_INVALID
となっています。
Catalinaにした後
先述のUIが消え、いつものやり方でアクセスできなくなりました。
よく見ると、エラーコードが NET::ERR_CERT_INVALID
に変わってます。
OSが返す例外の種類が変わって扱い方が変わっているみたいです。
解決方法
参考にも挙げたこのサイトにあるやり方は、下記の3通りで、JupyterHub on EMRに限らず使えます。
- Chromeのウインドウをアクティブにして「thisisunsafe」と打ち込む
- 証明書を落としてきて、信頼済み証明書のリストに追加する
- chromeを
-ignore-certificate-errors
オプションで起動する
一旦私は「1」の方法で対応しました。(2の方法をEMRを立ち上げるたびに毎回実施するのは相当な手間ですし、3の方法だと事故が恐ろしかったので。)
ただ、AWS公式にもある通り、「自分の信頼済みの証明書とキーを使用」するのが一番良さそうです。
おそらく
0. 証明書をどこかにおいておいて、(S3で良いかな?)
- EMR起動時にそれをノートブックサーバーにダウンロードして、
- それをJupyterHubで利用するコマンドを叩く
だと思うので、1と2をやってくれるようなブートストラップアクションを作るのが良いのかな…?まだ良くわかっていません。
もしこの部分も対応したらこの記事を編集しようと思います。