カスタムSSL証明書の使用

Keeper Connection ManagerにカスタムSSL証明書をデプロイする方法

このページでは、Keeper Connection Managerサービスで使用するSSL証明書の作成方法について詳しく説明します。

SSL証明書の生成と準備

SSL証明書の生成手順はプロバイダによって異なりますが、ここでは一般的な流れを記載します。

(1) ローカルワークステーションで秘密鍵を生成します。

openssl genrsa -out demo3.kcmdemo.com.key

(2) KCMに使用する予定のホスト名を必ず使用して、CSRを生成します。この場合、demo3.kcmdemo.comを使用する予定です。ここで重要なのは、コモンネームがドメインと正確に一致することです。

openssl req -new -key demo3.kcmdemo.com.key -out demo3.kcmdemo.com.csr

(3) SSL証明書を購入し、ご利用のSSL証明書プロバイダにCSRを送信します。

KCMインスタンス用に作成したSSL証明書は、この目的にのみご使用ください。他のサービスと共有のワイルドカード証明書のご使用はお控えください。

プロバイダをまだご利用でない場合は、次のサイトをお勧めします。https://www.ssls.com/

このKCMインスタンス専用のドメイン(demo3.kcmdemo.comなど)の証明書を作成します。SSL証明書プロバイダから、署名付き証明書(.crtファイル)と中間CA証明書を含むzipファイルが配信されます。

(4) 証明書が発行されたら、証明書(.crt)とバンドル(bundle.crt)をPEMエンコードされた1つのファイルに結合します。

このファイルは以下のように書式設定する必要があります。

-----BEGIN CERTIFICATE-----
MIIGQjCCBSqgAwIBAgIQeLDY2eR6ZdAagFwb7A/YxzANBgkqhkiG9w0BAQsFADCB
jzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQD
.....
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
yOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K
00u/I5sUKUErmgQfky3xxzlIPK1aEn8=
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7
MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
...
-----END CERTIFICATE-----

各「END CERTIFICATE」行の後に改行が存在することにご注意ください。KCMは不正な形式の証明書を拒否します。

秘密鍵ファイルはPEMエンコードされ、以下のように書式設定されます。

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBBAKCAQDAvzLIMM7MnVa7z/CTLm+dTnxcd9Rn0QOVdIRIHbQnoBQ9irv6
lgNp8pnpIKp/WPcvoNKEZND08CX8Ylxbw51ccoERNBPtvyXbJtfIFu81nplqr+Lt
....
eABEVrVcYwO10apQQ0lkXWyYhTS0WuB1wFZlIiFq7RJg2X7s9tmVMw==
-----END RSA PRIVATE KEY-----

(5) 2つのファイルをKCMサーバーに転送します。

ファイルをコピーする場所は、Keeper Connection Managerを実行しているサーバー内です。

Keeper Connection ManagerのDocker自動インストールメソッドを使用している場合の最適なファイルの配置場所は、「/etc/kcm-setup」です。以下のように、権限を適切に設定してください。

sudo mv demo3.kcmdemo.com_bundle.crt /etc/kcm-setup/
sudo mv demo3.kcmdemo.com.key /etc/kcm-setup/

sudo chmod 600 /etc/kcm-setup/demo3.kcmdemo.com_bundle.crt
sudo chmod 600 /etc/kcm-setup/demo3.kcmdemo.com.key

chown root:root /etc/kcm-setup/demo3.kcmdemo.com_bundle.crt
chown root:root /etc/kcm-setup/demo3.kcmdemo.com.key

(6) SSL証明書を使用して、docker-compose.ymlファイルを更新します。

お好みのエディタを使用して、Docker Composeファイルを更新します。KCMのDocker自動インストールメソッドを使用した場合、ファイルは、/etc/kcm/setup/docker-compose.ymlにあります。編集するセクションは以下のとおりです。

sudo vi /etc/kcm-setup/docker-compose.yml
docker-compose.yml
    ssl:
        image: keeper/guacamole-ssl-nginx:2
        restart: unless-stopped
        ports:
            - "80:80"
            - "443:443"
        environment:
            CERTIFICATE_FILE: "/etc/ssl/certs/external-fullchain.pem"
            PRIVATE_KEY_FILE: "/etc/ssl/private/external-privkey.pem"
            ACCEPT_EULA:"Y"
            GUACAMOLE_HOSTNAME: "guacamole"
            SSL_HOSTNAME: "demo3.kcmdemo.com"
        volumes:
            - "/etc/kcm-setup/demo3.kcmdemo.com_bundle.crt:/etc/ssl/certs/external-fullchain.pem:ro"
            - "/etc/kcm-setup/demo3.kcmdemo.com.key:/etc/ssl/private/external-privkey.pem:ro"
ec2-user/demo3.kcmdemo.com_bundle.crt:/etc/ssl/certs/external-fullchain.pem:ro"
            - "/home/ec2-user/demo3.kcmdemo.com.key:/etc/ssl/private/external-privkey.pem:ro"

SSL_HOSTNAMEおよびボリュームマウントのパスとファイル名を必ず編集してください。

新しい証明書でサービスを再起動する手順は以下のとおりです。

sudo ./kcm-setup.sh stop
sudo ./kcm-setup.sh upgrade

年次更新

証明書は、毎年更新する必要があります。大半の証明書プロバイダは、新しい証明書を生成してくれます。証明書の更新後、証明書ファイルを置き換えてサービスを再起動する必要があります。

Last updated