カスタムSSL証明書の使用
KeeperコネクションマネージャーにカスタムSSL証明書をデプロイする方法
本ページでは、Keeperコネクションマネージャーサービスで使用する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コネクションマネージャーしているサーバー内です。
Keeperコネクションマネージャーの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
ssl:
image: keeper/guacamole-ssl-nginx:2
restart: unless-stopped
ports:
- "80:80"
- "443:443"
environment:
CERTIFICATE_FILE: "/etc/ssl/certs/certificate.pem"
PRIVATE_KEY_FILE: "/etc/ssl/certs/private.pem"
ACCEPT_EULA: "Y"
GUACAMOLE_HOSTNAME: "guacamole"
SSL_HOSTNAME: "demo3.kcmdemo.com"
volumes:
- "/etc/kcm-setup:/etc/ssl/certs/:ro"
SSL_HOSTNAMEおよびボリュームマウントのパスとファイル名を必ず編集してください。
新しい証明書でサービスを再起動する手順は以下のとおりです。
sudo ./kcm-setup.sh stop
sudo ./kcm-setup.sh upgrade
年次更新
証明書は、毎年更新する必要があります。大半の証明書プロバイダは、新しい証明書を生成してくれます。証明書の更新後、証明書ファイルを置き換えてサービスを再起動する必要があります。