SSL/TLSとカスタムCA証明書
Keeperコマンダーは、KeeperクラウドAPIとHTTPSで通信します。デフォルトでは、信頼済みCAバンドル (同梱のcertifiストア、または構成時のOS CAストア) を使ってサーバー証明書を検証します。
ネットワークで企業ルートCAによるTLS検査 (SSLインターセプト) が行われている場合、そのCAを信頼するよう構成しないと、証明書検証エラーで接続に失敗することがあります。
このページでは、コマンダーCLIおよびサービスモードでのSSL/TLS証明書検証の構成方法を取り扱います。
カスタムCAバンドルを使用する場合
以下のようなエラーが表示される場合は、カスタムCAバンドルを構成します。
requests.exceptions.SSLError: HTTPSConnectionPool(host='keepersecurity.com', port=443): Max retries exceeded with url: /api/rest/authentication/get_device_token (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)')))または
certificate verify failed: self-signed certificate in certificate chainよくあるシナリオは以下のとおりです。
企業のTLS検査 (Zscaler、Palo Altoなど)
Keeperエンドポイントを検査対象外 (許可リスト) にするか、企業ルートCAを含むCAバンドルを指定する
OSのCAストアが未整備または古い
KEEPER_SSL_CERT_FILE=system を設定するか、OSのCAパッケージをインストールする
システム証明書なしでコマンダーをインストールした場合
KEEPER_SSL_CERT_FILE にPEMファイルのパスまたは certifi を設定する
デバッグ用プロキシを使うローカル開発
プロキシCAを含むPEMファイルを使うか、テスト専用として none を使う
セキュリティポリシーで許可される場合は、ITチームと連携し、KeeperエンドポイントをTLS検査の許可リストに追加してください (keepersecurity.com、keepersecurity.eu、keepersecurity.com.au、keepersecurity.ca、keepersecurity.jp、または必要に応じて govcloud.keepersecurity.us)。これらのホストへの外向きHTTPSを許可リストに追加すれば、カスタムCAバンドルが不要になる場合があります。
クイックスタート
手順1: 企業ルートCAを入手する
TLS検査に使用されているルートCA証明書を、ITまたはセキュリティチームから入手してください。通常は .pem または .crt ファイルです。
手順2: CAバンドルを作成する
公開ルートCAと企業ルートCAを連結した、単一のPEMファイルを作成します。
macOS / Linuxの例:
Windowsでは、certifiバンドルと企業CAを1つの .pem ファイルに連結します。C:\ProgramData\Keeper\keeper-cacert.pem など、変更しにくい場所に保存してください。
コマンダーのインストールディレクトリ内にある同梱の cacert.pem は編集しないでください。アップグレード時に上書きされます。独自のバンドルを参照するには KEEPER_SSL_CERT_FILE を使用してください。
手順3: 環境変数を設定する
Windows (永続):
setx 実行後は、新しいコマンドプロンプトまたはPowerShellウィンドウを開いてください。
macOS / Linux (~/.zshrc、~/.bashrc、またはサービスユニットファイルに追加):
手順4: 構成を確認する
新しいターミナルを開き、変数が設定されていることを確認します。
コマンダーを起動してログインします。
CERTIFICATE_VERIFY_FAILED エラーなしでログインが完了するはずです。詳細なログを有効にするには、keeper shell --debug を使用します。
構成リファレンス
解決の優先順位
SSL検証の設定は、以下の順序で解決されます。最初に一致したルールが適用されます。
1
VERIFY_SSL=FALSE 環境変数
この変数を参照する設定 (PAMトンネルのWebSocket接続を含む) でSSL検証を無効化
2
config.json 内の "certificate_check": false
その構成ファイルを使うREST/API呼び出しのHTTP証明書検証を無効化
3
KEEPER_SSL_CERT_FILE 環境変数
HTTP通信に使うCAバンドルを指定
4
デフォルト
certifi同梱ストアを使用。または KEEPER_SSL_CERT_FILE=system の場合はOSのCAバンドルを使用
KEEPER_SSL_CERT_FILE の値
(未設定)
certifi同梱のCAストアを使用 (デフォルト)
.pem ファイルへの絶対パス
指定したPEMファイルを使用。ファイルが存在しない場合は警告を出力し、certifiにフォールバック
certifi
同梱のcertifi CAストアを使用
system
OSのCAバンドルを使用 (macOSおよびLinux)。Windowsではcertifiにフォールバック
none または false
HTTP証明書検証を無効化。本番環境では非推奨
KEEPER_SSL_CERT_FILE はプロセスごとに1回読み取られます。この変数を変更したら、コマンダーを再起動してください。
config.json オプション
構成ファイル (--config または --config-file) を使う場合、HTTP SSL検証は certificate_check プロパティで制御します。
true
HTTP SSL検証を有効化 (デフォルト)。KEEPER_SSL_CERT_FILE またはデフォルトのCAストアを使用
false
その構成ファイルについてHTTP SSL検証を無効化
その他の構成オプションについて詳しくは、構成ファイルをご参照ください。
VERIFY_SSL 環境変数
VERIFY_SSL=FALSE は互換性のために残されているレガシー設定です。この変数を参照するコンポーネント (PAMトンネルのWebSocket接続を含む) では、SSL検証が無効になります。
HTTP通信では、検証を無効にするのではなく、適切なCAバンドルを指定した KEEPER_SSL_CERT_FILE を使用してください。
これらの設定が対象とするトラフィック
HTTP/HTTPSトラフィック
以下のコマンダー操作には、KEEPER_SSL_CERT_FILE、certificate_check、および上記の解決優先順位が適用されます。
ログインおよび認証
ボルト同期およびREST API呼び出し
レコードの添付ファイル
エンタープライズおよびコンプライアンスレポート
KeeperPAMクラウドAPI操作 (検出、GraphSync、ローテーション、PAM SaaSプラグインのダウンロード、ルーターHTTP呼び出し)
コマンダーのHTTPを使うサードパーティインポート (例: LastPassインポート)
KeeperクラウドAPIへのサービスモードREST APIの外向き呼び出し
PAMトンネルのWebSocket接続
PAMトンネルのWebSocket接続 (SSH/RDPトンネルのシグナリング) には VERIFY_SSL 環境変数を使います。KEEPER_SSL_CERT_FILE は使いません。
ログインとボルト同期は成功するが、pam tunnel がSSLエラーで失敗する
WebSocket通信向けに VERIFY_SSL を構成する。またはトンネルエンドポイントへのアクセスについてITチームに相談する
証明書エラーでログインに失敗する
HTTP通信向けに KEEPER_SSL_CERT_FILE を構成する
トンネルセットアップ時のHTTP手順 (例: バインドURLのリクエスト) にはHTTP SSL設定が適用され、KEEPER_SSL_CERT_FILE も対象になります。
HTTPプロキシとTLS検査
HTTPプロキシ構成とTLS検査は別々の設定です。
HTTPプロキシのルーティング
proxy コマンド、config.json の "proxy"、または --proxy フラグ
TLS検査の信頼
KEEPER_SSL_CERT_FILE
制限されたネットワークでは、両方の設定が必要になる場合があります。プロキシでのログインをご参照ください。
プラットフォーム固有の注意
Windows
永続的な環境変数には
setxを使用してください。スケジュールされたタスクおよびWindowsサービスは、対話型シェルで設定した変数を継承しません。Windowsタスクスケジューラでは、タスクの環境またはシステム環境変数として
KEEPER_SSL_CERT_FILEを設定してください。PEMファイルは、コマンダーを実行するアカウントが読み取れる場所に保存してください。
macOS
KEEPER_SSL_CERT_FILE=systemを使う場合、一般的なHomebrewおよびシステムのCAパスが確認されます。シェルプロファイルを更新したら、新しいターミナルを開いてください。
Linux
KEEPER_SSL_CERT_FILE=systemを使う場合は、ca-certificatesパッケージをインストールしてください。一般的なシステムバンドルのパスには、
/etc/ssl/certs/ca-certificates.crtおよび/etc/pki/tls/certs/ca-bundle.crtなどがあります。
バッチ実行とスケジュール実行
バッチモードまたはスケジュールされたタスクからコマンダーを実行する場合は、起動前に環境で KEEPER_SSL_CERT_FILE を設定してください。スケジュールされたタスクおよびWindowsサービスは、対話型シェルセッションの変数を継承しません。
例:
このコマンドを実行するのと同じ環境で、KEEPER_SSL_CERT_FILE が設定されていることを確認してください。タスクスケジューラのセットアップについて詳しくは、Windowsタスクによる自動化をご参照ください。
サービスモード
コマンダーサービスモードは、コマンダーREST APIをサービスとして実行します。KeeperクラウドAPIへの外向き呼び出しには、KEEPER_SSL_CERT_FILE を含むCLIと同じHTTP SSL設定が使われます。
ホストまたはVPCからの外向き通信がTLS検査を経由する場合は、コンテナまたはインスタンスの起動前に、サービスモードの実行環境でCAバンドルを構成してください。
Docker
CAバンドルをコンテナにマウントし、docker-compose.yml の environment セクションで KEEPER_SSL_CERT_FILE を設定します。
/host/path/keeper-cacert.pem を、Dockerホスト上のCAバンドルのパスに置き換えてください。
service-docker-setup で docker-compose.yml を生成する場合は、docker compose up を実行する前に、生成されたファイルへ KEEPER_SSL_CERT_FILE エントリとボリュームマウントを追加してください。
サービスモードのセットアップについて詳しくは、Dockerによるデプロイをご参照ください。
AWS Marketplace
AWS Marketplace AMI からコマンダーサービスモードをデプロイする場合は、インスタンス上でコマンダーを実行するアカウントまたはサービスの環境に KEEPER_SSL_CERT_FILE を設定してください。CAバンドルのPEMファイルをインスタンスにコピーし (例: /etc/ssl/certs/ 配下)、そのパスを変数に指定します。
インスタンスからの外向き通信がTLS検査を経由する場合、変数は実行中のコマンダーサービスと同じ環境に設定する必要があります。対話型SSHセッションだけへの設定では不十分です。
KEEPER_SSL_CERT_FILE を変更したら、コマンダーサービスを再起動してください。
関連トピック
以下の設定はそれぞれ目的が異なり、KEEPER_SSL_CERT_FILE と置き換えて使うことはできません。
コマンダーのHTTPプロキシ
RDPターゲットの証明書検証
PAMトンネルレコード設定 (ignore server certificate)
Keeperゲートウェイの外向きプロキシ
Keeperコネクションマネージャーのサーバー証明書
Keeperコネクションマネージャーのドキュメント
トラブルシューティング
環境変数設定後も CERTIFICATE_VERIFY_FAILED が発生する
新しいターミナルを開く。変数が設定されていることを確認する。PEMファイルに公開ルートと企業ルートCAの両方が含まれていることを確認する
PEMパスが存在しないという警告
絶対パスを使用し、ファイル権限を確認する
ログインは成功するが、PAM検出がSSLエラーで失敗する
PAMトンネルのWebSocket接続を確認する
スケジュールされたタスクは失敗するが、対話型シェルでは動作する
タスクまたはシステム環境に KEEPER_SSL_CERT_FILE を設定する
サービスモードのヘルスチェックは成功するが、Keeper API呼び出しが失敗する
SSHセッションだけでなく、コンテナまたはインスタンスの環境に KEEPER_SSL_CERT_FILE を設定する
詳しくは、トラブルシューティングをご参照ください。またはcommander@keepersecurity.comまでご連絡ください。
最終更新

