昨日LAN内用サーバーにうまく繋がらなくなったということを記事にしました。
昨日構築したLAN内用サーバー。 [sitecard subtitle=関連記事 url=https://ephemeral-arcadia.jp/passo_wp/2020/06/lan内用サーバー.html] ちょっとSSL[…]
いろいろとやってみた結果、なんとか繋がるようになったので記事に残しておこうと思います。
経緯
- うちに数台あるラズパイの1台をLAN内専用のサーバーとして活用すべく、ひとまずwebサーバーをインストール。
- HTTP/2に対応させるためSSL化を実施。
SSL証明書は所謂「オレオレ証明書」を使用。 - 各種アプリをインストールし、LAN内の端末(Aとする)から問題なくアクセスできることを確認。
- 証明書の作成において手順に誤りがあったっぽいので再度証明書を作成し、サーバーに配置。
- LAN内の端末(Bとする)から問題なくアクセスできることを確認。
- 端末Aからアクセスすると「セキュリティで保護された接続を確立できない」的なエラーでアクセスできず。
Chromeだと大丈夫
端末AでもChromeであれば問題なくアクセスすることが可能でした。
あと、Safariのプライベートブラウズモードも大丈夫でした。
つまりはSafariのキャッシュ的なものの何かが古い証明書の情報を持っていて、上記4番で新しくした証明書を正しいものとして認識してくれないのではないかと予想しました。
プライベートブラウズモードだとキャッシュ的なものを見ないからアクセスできるのではなかろうかと。
キーチェーンアクセス
macOSには認証系の情報を一括して管理できるキーチェーンアクセスというアプリが入っています。
これで見てみると上記3番で読み込んだであろう証明書があったのでサクッと削除してみました。
証明書がなくなったから次にアクセスしたらサーバーから取得してくれるのではないかという淡い期待を抱きながら…。
でもダメでした。
また、端末Bにも同じ証明書があったので削除したんですが、そうしたら端末Bもエラーになってアクセスできなくなってしまいました。
状況悪化…。
原因は証明書
まぁでもMacにサーバー証明書が入っていないからエラーになっているということが分かりました。
キーチェーンアクセスには証明書を読み込む機能が付いているのでこれでサーバー証明書(公開鍵の方)を読み込ませたら問題なくアクセスできるようになりました!
今回の対応が本当に正しかったのか定かではありません。
検索してもこれといった情報が引っかからないんですよね。
サーバーに入って証明書にアクセスできる環境だったからMacに持ってきてキーチェーンアクセスで読み込ませることが出来ましたけど、それが出来ない環境だったらどう対応すればいいんでしょうね。
私が知らないだけでブラウザにサーバー証明書のダウンロード機能とか付いているのかなぁ。
証明書周りは難しいですねぇ。
まぁ何はともあれアクセスできるようになってよかったよかった。😄