この記事では、UbuntuとAlmaLinuxにCockpitをインストールします。
はじめに
近年、サーバー管理はますます複雑化しており、管理者にとって大きな負担となっています。そこで今回は、Webブラウザからサーバーを簡単に管理できるツール「Cockpit」をインストールする方法をご紹介します。
コマンドの違いしかありませんが、UbuntuとAlmaLinuxで解説します。
環境
AlmaLinuxとは?
AlmaLinuxは、Red Hat Enterprise Linux (RHEL) をベースとしたコミュニティベースのオープンソースオペレーティングシステムです。Linuxディストリビューションの一つです。CentOS の開発方針の変更に伴い、2021年に誕生したAlmaLinuxは、RHELと互換性を保ちながら、コミュニティ主導で開発・サポートされています。
2024年11月18日に、コードネーム「Teal Seval」と呼ばれるAlmaLinux 9.5の一般提供を開始しました。
この記事では、このAlmaLinux 9.5を使用します。
Ubuntuとは?
Ubuntu(ウブントゥ)は、Linuxディストリビューションの一つで、Debianをベースに開発されています。初心者にも扱いやすい設計で、デスクトップPCやサーバー向けに広く利用されています。
2024年4月25日に、コードネーム「Noble Numbat」と呼ばれるUbuntu 24.04がリリースされました。
この記事では、このUbuntu 24.04を使用します。
Cockpit
Cockpit は、サーバー管理をするためのオープンソースのWeb UIです。LinuxシステムをWebブラウザから管理できます。Webブラウザさえあれば、どこからでもサーバーにアクセスして、システム情報を確認したり、設定を変更したり、アプリケーションを管理したりすることができます。
主な機能
インストール
Cockpitのインストール
それでは、Cockpitをインストールしましょう。
apt install
コマンドを実行します。
$ sudo apt install cockpit
Cockpitの起動
次に、cockpit.socketを開始します。システム起動時に開始するようにsystemctl enable
コマンドを実行します。オプション--now
をつけて起動も同時に行います。
$ sudo systemctl enable --now cockpit.socket
Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket → /usr/lib/systemd/system/cockpit.socket.
起動の確認をするためには、systemctl status
コマンドを実行します。
$ systemctl status cockpit.socket
「Active:
」がactive (listening)
になっていれば起動しています。「Loaded:
」がenabled
になっていればシステム起動時に開始するように設定されています。

インストール直後はcockpit.socketはdisabled
の状態になっています。
$ systemctl status cockpit.socket
○ cockpit.socket - Cockpit Web Service Socket
Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; disabled; preset: disabled)
Active: inactive (dead)
Triggers: ● cockpit.service
Docs: man:cockpit-ws(8)
Listen: [::]:9090 (Stream)
動作確認
cockpitに接続
それでは、Cockpitにアクセスしてみましょう。https://<IPアドレス>:9090
にアクセスしてみましょう。
この段階ではサーバー証明書を用意していないため、保護されていない通信になります。今はこのままでアクセスします。のちの章でサーバー証明書を用意します。
この記事では、同じネットワーク上のMac miniから接続しています。「詳細設定」をクリックして、<アドレス>にアクセスする(安全ではありません)をクリックします。


ログイン
すると、ログイン画面が表示されると思います。ユーザ名とパスワードを入力してログインしましょう。

ログインできたらこのような画面が表示されると思います。

https通信
Cockpitには無事ログインできましたが、今のままだと通信が保護されていません。ローカルネットワークなどの安全が確保されている場合は問題ないのですが、見栄えが悪いので対応したいと思います。
もちろんhttps化しなくてもCockpitとしての動作はします。
自己認証局を立てて、その認証局に署名をもらうサーバー証明書を作成します。いわゆるオレオレ証明書です。
認証局
自己認証局の証明書と秘密鍵の作成を行います。
まず、mkcertをインストールしてきます。
apt installコマンドを実行します。
$ sudo apt install mkcert
$ mkcert --version
1.4.4
執筆時点のmkcertのバージョンは1.4.4
なのでこれを使用します。
自己認証局の証明書と秘密鍵の作成を行います。そのために、mkcer --install
コマンドを実行します。
$ mkcert --install
Created a new local CA 💥
The local CA is now installed in the system trust store! ⚡️
mkcert -CAROOT
コマンドを実行すると証明書と秘密鍵が作成されたパスを表示します。
$ mkcert -CAROOT
/home/higma/.local/share/mkcert
表示された場所を確認すると、確かに作成されています。rootCA-key.pem
(秘密鍵)、rootCA.pem
(証明書)。
$ ls /home/higma/.local/share/mkcert
rootCA-key.pem rootCA.pem
サーバー証明書
サーバーの証明書と秘密鍵を作成します。この作業も、Cockpitが起動しているマシンで行います。
mkcert <サーバードメインorサーバーIPアドレス>
でサーバー証明書が作成できます。この記事ではCockpitが起動しているマシン (192.168.11.6)の証明書を作成します。なので、mkcert 192.168.11.6
を実行します。
$ mkcert 192.168.11.6
Created a new certificate valid for the following names 📜
- "192.168.11.6"
The certificate is at "./192.168.11.6.pem" and the key at "./192.168.11.6-key.pem" ✅
It will expire on 19 June 2027 🗓
192.168.11.6-key.pem
(秘密鍵)と、192.168.11.6.pem
(証明書)が作成されました。
$ ls
192.168.11.6-key.pem 192.168.11.6.pem
Cockpitでサーバー証明書を使う
Cockpitでサーバー認証をするためには、先ほど作成したサーバー証明書と秘密鍵を/etc/cockpit/ws-certs.d/
ディレクトリに置く必要があります。その時に、秘密鍵の拡張子を.key
、証明書の拡張子を.crt
にしてください。
$ sudo mv 192.168.11.6-key.pem /etc/cockpit/ws-certs.d/192.168.11.6.key
$ sudo mv 192.168.11.6.pem /etc/cockpit/ws-certs.d/192.168.11.6.crt
ブラウザの設定
この設定はMacの場合の説明です。WindowsやLinux、別のブラウザだと少し違うかもしれませんが、本質的には変わりません。
ここでは、Chromeの設定で認証局の証明書をインストールします。まず、アドレスバー左側の「保護されていない通信」をクリックします。出てきたメニューの「サイトの設定」をクリックします。

次に、「プライバシーとセキュリティ」をクリックして、「セキュリティ」をクリックします。

表示されたページで、「証明書の管理」をクリックします。

証明書マネージャのページが開きます。「ローカル証明書」→「MacOSからインポートした証明書を管理する」をクリックします。

Macの場合は次のような「キーキェーンアクセス」のウィンドウが表示されます。そして、「システム」→「証明書」→「四角に鉛筆のマーク」の順にクリックします。認証局の章で作成したrootCA.pem
を選択します。

すると、新しい証明書が表示されるのでクリックします。

すると、下のようなウィンドウが表示されます。「信頼」を表示すると「この証明書を使用するとき」の項目が「システムデフォルトを使用」になっています。

これを「常に信頼」に変更します。

すると、青色のプラスのマークに変わっています。これで認証局の設定は完了です。

動作確認
無事、通信が保護されるようになって、赤文字の警告がなくなりました。

おわりに
この記事では、UbuntuとAlmaLinuxにCockpitをインストールしました。また、サーバー証明書をブラウザに登録しました。その後、ネットワーク上の別PCからアクセスできることを確認しました。
Cockpitの導入でサーバー管理が楽になったと思います。関連記事にCockpitを使って仮想マシンを作成する方法を解説してます。参考にしてください。
今話題のUbuntuとAlmaLinuxを使いこなしてつよつよエンジニアを目指しましょう!
コメント