Cockpit で、SSL証明書導入してSSL化

2023-02-09

ZeroSSLの証明書を利用して、証明書の警告表示されないCockpitの管理画面を作る

Web UI 上で Linux サーバの管理ができる「Cockpit」ですが、通常だと https://[ドメイン]:9090/ or https://[IPアドレス]:9090/のような、URLにアクセスすると利用できます。

私の環境では、IPアドレス:9090/ のIPアドレスで利用しています。URLにアクセスすると下記のSSL証明書の警告がでてるので、なんとか対策したけど、利用頻度が少ないので放置してました

 

先日「IPアドレスのサーバーを登録SSL証明書を発行する【ZeroSSL】」の記事でも書きましたが、ZeroSSLでIPアドレスで利用できるSSL証明書を導入したので、この証明書を利用して Cockpit でSSL証明書の警告が出ないようにします

Cockpit の証明書を、ZeroSSLの証明書と差し替える

1.ZeroSSLの証明書を任意の場所にアップロードします。SCPを利用してユーザーのホームディレクトリにアップロードしています

# /home/admin/xxx.xxx.xxx.xxx/ 以下にZeroSSLの証明書をアップロードしています
$ ls /home/admin/xxx.xxx.xxx.xxx/

ca_bundle.crt  certificate.crt  private.key

2.「/etc/cockpit/ws-certs.d/」にある、Cockpitの証明書の内容を確認します。
Cockpitで使用している証明書(0-self-signed.cert)は、CSRと秘密鍵を一緒になっています

$ sudo cat /etc/cockpit/ws-certs.d/0-self-signed.cert
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCjO+lpX99qF5A0
yKVkiFIoZtlrCY8NvMMuiBrjMYso9ycB+i8Gt25tTkZ4XUgMczeXsOYHG3Gl3QNL
QZBZr0WqVOVM9R1dN1/XxJfSKkb/HaiXP86SSlT5GgALNk+LV1CtoBH2yR9fFz3U
M2DtHXbNGugWT+8prn6ufQSVTFDStr245TSn6D90MkTi4VmtBLorjtILjg5u/n64
AY4kHNVUs8nHcNRv+D7/dBzGRy0pOd9KXvQW5a3lqpGZlppOuDImjP9XiX1pv8tP
cjxjxK7G5fOIdDloJXpJxog=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIEuDCCAqCgAwIBAgIIRqqLBIdNSq4wDQYJKoZIhvcNAQELBQAwbjELMAkGA1UE
BhMCVVMxKTAnBgNVBAoMIGNhYzU3NmFjZmU0ODQ0NTM5NWJhNTE3ZDk5MTE0ZmU1
MR8wHQYDVQQLDBZjYS01NDEyMDczNzE0Njk4NzQ4NjM1MRMwEQYDVQQDDAptLXlh
YmUuY29tMB4XDTIxMTAyMDAxMTkwNFoXDTIyMTAyNTAyNTkwNFowTTELMAkGA1UE
iZEgT3reeIrXdwd8+EIWf9Va6qVg09BNqcs/ogdKc4GsWN/+IwEk7rGc5xckAlbp
GT9gMhXyH/I1V91s
-----END CERTIFICATE-----

3.Cockpitの証明書と同じく、ZeroSSLの CSRと秘密鍵 を一個のファイルにします。ファイル名は「ssl.cert」として作成します。ファイル名は何でも良いですので任意で変更して下さい

$ cat /home/admin/xxx.xxx.xxx.xxx/certificate.crt > /home/admin/xxx.xxx.xxx.xxx/ssl.cert
$ cat /home/admin/xxx.xxx.xxx.xxx/private.key >> /home/admin/xxx.xxx.xxx.xxx/ssl.cert

4.「/etc/cockpit/ws-certs.d/」以下にある、Cockpitの証明書をバックアップして、上記で作成したZeroSSLの証明書と入れ替えます

# Cockpit の証明書は以下の場所にあります
$ ls /etc/cockpit/ws-certs.d
0-self-signed-ca.pem      0-self-signed.cert

# 一旦、/var/tmp に移動します
$ sudo cp -pr /etc/cockpit/ws-certs.d /var/tmp/

# ファイルがコピーされているか確認します
$ ls /var/tmp/ws-certs.d
0-self-signed-ca.pem 0-self-signed.cert

# ファイルがコピーされていたら、Cockpitが作成したある証明書を削除します
$ sudo rm -f /etc/cockpit/ws-certs.d/*

# ZeroSSLで発行した証明書で、 CSRと秘密鍵 を一個したファイル(ssl.cert)を、Cockpit のSSL証明書の場所にコピーします
$ sudo cp /home/admin/xxx.xxx.xxx.xxx/ssl.cert /etc/cockpit/ws-certs.d/

# コピーされたことを確認します
$ sudo ls /etc/cockpit/ws-certs.d/
ssl.cert

5.Cockpit を再起動て、新しい証明書を読み直して有効します

$ sudo systemctl restart cockpit.service

6.ブラウザでアクセスして、ZeroSSLの証明書に変わっている事を確認します

 

 

スポンサーリンク

0
0