https://192.168.xxx.xxx:9090
でアクセスしようとすると「信頼できねーけど?!」って言われる例のアレ。
めんどくさいけれど、対応してみる。色々調べていくとどーせローカルな環境でしか使わないならmkcertを利用して自己認証局を立ててサクッとやっちゃうのが楽そうなのでやってみると、これが、あちこちに散らばってる解説サイトのそのまま試してみると説明が中途半端だったり、間違ってたり、適当だったり、クライアントがmacOS sonomaだからなのかすんなりいかなかったり、で、ちょい手こずったりしたので、他人を当てにしすぎちゃダメだな(苦笑)ってことで自分のためにもメモっておく。うん。
Contents >>>>>>>>
まずはmkcertを入れる
$ sudo apt install mkcert
自己認証局の証明書と秘密鍵の作成とクライアントへのコピー
$ mkcert --install
mkcert -CAROOTコマンドでパスを確認。
$ mkcert --CAROOT
/home/{user]/.local/share/mkcert
確認すると確かにできてる。
$ ls /home/{user}/.local/share/mkcert
rootCA-key.pem rootCA.pem
で、ここからが間違っているところが多いのだけれど、例えば私はmacOS sonomaなのでそれで説明するが、この【rootCA.pem】をクライアントであるmacの適当なところにまずはコピーしておく。
ちなみに私の場合mkcertを入れたcockpitが動作しているサーバはsambaも動作しているのでsambaの共有スペースにコピーして、macの自身のユーザフォルダのドキュメントフォルダにコピーした。(※1)
サーバ証明書と秘密鍵
例えば当該サーバのIPアドレスが192.168.1.5だったら
$ mkcert 192.168.1.5
でOK。確認すると
$ ls
192.168.1.5-key.pem 192.168.1.5.pem
秘密鍵(前者)と証明書(後者)2つのファイルができている。で、Cockpitの/etc/cockpit/ws-certs.d/
ディレクトリに移動してCockpitの証明書と入れ替えるのだけれど、Cockpitで使用している証明書(0-self-signed.cert)は秘密鍵と一緒になっている***.certという形式なので、そのようにしてから入れ替える。
まずは念の為デフォルトで現在置いてある証明書をoldディレクトリを作ってそこに逃して保管しおく
$ sudo mkdir /etc/cockpit/ws-certs.d/old
$ sudo mv /etc/cockpit/ws-certs.d/0-self-signed.* /etc/cockpit/ws-certs.d/old/
先ほど作っておいた2つのファイルを合わせてcertファイルを作る
$ cat 192.168.1.5.pem 192.168.1.5-key.pem > hogehoge-ssl.cert
(hogehoge-sslの部分はお好きに)できたら、移動(というか意味的には差し替え)
$ sudo mv hogehoge-ssl.cert /etc/cockpit/ws-certs.d/
これでサーバ側の準備は完了。
クライアント(mac)にルート証明書をインストール
(※1)であらかじめコピーしておいた rootCA.pem をmacにインストールする。ダブルクリックしてmacの管理者パスワードをいれればキーチェーンアクセスが開いてインストールされる。
↑こんな感じ。でもそのままだとまだインストールしたルート証明が赤いバッテンがついたままなのでそれをダブルクリック。
「信頼」のところを開いて「この証明書を使用するとき」を「常に信頼」に変えると上のようにずらっと「常に信頼」に変わるをの確認して閉じるてキーチェーンを見ると緑のプラスに変わっているので、これでクライアントも準備OK。
あとは好きなWebブラウザでmacからアクセスするだけ
https://192.168.1.5;9090
へアクセスしても件の警告は出なくなっている。ついでに書いておくがmacの場合、キーチェーンで管理しているので、この状態ではSafariだろうがGoogle ChromeだろうがFireFoxだろうが、それぞれのWebブラウザで何かする必要はなく、一気に解決、だ。ふぅ。
・・・。リンクボタンをクリックするだけで繋がるってのは、やっぱり楽だなw