この記事では、コマンドラインツールと開発フレームワークがカトネットワークのTLSインスペクション証明書を信頼し、トラフィックを検査しながらHTTPSがエラーなく機能するようにする方法を示しています。 カト証明書をシステム全体にインストールし、OS信頼ストアを使用していない特定のツールに証明書を指す方法について説明します。
以下の例では、/path/to/CatoNetworksTrustedRootCA.pemをあなたの環境に適した実際のパスに置き換えてください。
ホストOSにカトのルートCAをインストールすると、ほとんどのアプリが検査されたトラフィックを自動的に信頼します。 カト証明書のインストール方法に記載されているように、カトのルートCAをインストールできます。
予期した通り動作しない場合は、OSの信頼ストアにカトのルートCAを手動で追加できます。 カト証明書のインストールに関する詳細情報は関連する記事を参照してください。
一部のツールは、CA信頼バンドルを拡張するのではなく上書きし、以前に存在していたすべての証明書を実際に削除します。 これらのツールが公共のウェブサイトとカト検査済みトラフィックの両方を信頼するようにするには、OSの信頼されたルート証明書とカトルートCAを含めた合成バンドルを作成してください。
推奨: カトルートCAをシステムストアにインストールしてください。 単一のCAファイルが必要なツールには、合成バンドルを使用してください。
メンテナンスのヒント: 合成バンドルを定期的に新しく作り直してください(例えば、毎月またはOS信頼の更新後)。
# Run in elevated PowerShell
$dest="$env:ProgramData\CatoNetworks\TLS\cato_combined_ca.pem"; $destDir=Split-Path $dest; New-Item -ItemType Directory -Force -Path $destDir | Out-Null; Get-ChildItem Cert:\CurrentUser\Root, Cert:\LocalMachine\Root, Cert:\CurrentUser\CA, Cert:\LocalMachine\CA | Sort-Object Thumbprint -Unique | ForEach-Object { "-----BEGIN CERTIFICATE-----"; [System.Convert]::ToBase64String($_.RawData,'InsertLineBreaks'); "-----END CERTIFICATE-----"; "" } | Out-File -Encoding ascii $dest; Write-Host "Combined bundle written to: $dest"
出力パス: C:\ProgramData\CatoNetworks\TLS\cato_combined_ca.pem
sudo mkdir -p "/Library/Application Support/CatoNetworks/TLS"
security find-certificate -a -p \
/System/Library/Keychains/SystemRootCertificates.keychain \
/Library/Keychains/System.keychain \
> /tmp/cato_combined_ca.pem && \
sudo install -m 0644 /tmp/cato_combined_ca.pem \
"/Library/Application Support/CatoNetworks/TLS/cato_combined_ca.pem"
出力パス: /Library/Application Support/CatoNetworks/TLS/cato_combined_ca.pem
単一のファイルを生成するために、OSバンドルとカトCAを結合します。
Debian/Ubuntu:
sudo bash -c 'cat /etc/ssl/certs/ca-certificates.crt > /etc/ssl/certs/cato_combined_ca.pem'
出力パス: /etc/ssl/certs/cato_combined_ca.pem
RHEL/CentOS/Alma/Rocky:
sudo bash -c 'cat /etc/pki/tls/certs/ca-bundle.crt > /etc/pki/tls/certs/cato_combined_ca.pem'
出力パス: /etc/pki/tls/certs/cato_combined_ca.pem
一部のツールはOS信頼ストアを無視したり、それが利用できない環境で動作します。 その場合は、カトCAまたは合成バンドルを使用するように明示的に設定してください。
Linux/macOS:
export VARIABLE_NAME=/path/to/file
または恒久的な解決策として:
echo 'export VARIABLE_NAME=/path/to/file' >> ~/.zshrc or ~/.bashrc
source ~/.zshrc or ~/.bashrc
Windows CMD
set VARIABLE_NAME=C:\path\to\file
または恒久的な解決策として:
setx VARIABLE_NAME "C:\path\to\file"を実行し、その後CMDウィンドウを再度開いてください。
Windows PowerShell
$env:VARIABLE_NAME="C:\path\to\file"
-
現在のユーザーのための恒久的な解決策として:
setx VARIABLE_NAME "C:\path\to\file"を実行し、その後CMDウィンドウを再度開いてください。 -
デバイス上のすべてのユーザーに対する恒久的な解決策として:
[System.Environment]::SetEnvironmentVariable("VARIABLE_NAME", "C:\path\to\file", "Machine")を実行してください。
Pythonツールは、certifiを使用することが多く、これにはOS信頼ストアとは別にCAバンドルが含まれます。
- macOSまたはLinuxでは、合成証明書バンドルに設定します。
- Windowsでは、Pythonに直接Windows信頼ストアを使用させるために
pip install pip-system-certsを実行します。
macOS/Linuxの場合、CatoのルートCAをツールのcertifiバンドルに追加するか、そのCA変数を合成バンドルに指すように設定します。
Azure CLI (macOS/Linux)
CLIに同梱されているcertifiバンドルにCatoのルートCAを追加します。 Cerifiのバンドルの場所を確認するには、以下のコマンドを実行します。
$(az --version 2>&1 | awk -F"'" '/Python location/ {print $2}') -m certifi
AWS CLI / Boto (MacOS/Linux)
変数を設定します。
AWS_CA_BUNDLE=/path/to/cato_combined_ca.pem
または設定ファイル~/.aws/configにこの行を追加します。
ca_bundle = /path/to/cato_combined_ca.pem
Gcloud CLI
SDKに同梱されたcertifiバンドルにCatoのルートCAを追加します。
~/google-cloud-sdk/platform/bundledpython*/lib/python*/site-packages/certifi/cacert.pem
注意: 工具をインストールした方法によって、パスは異なることがあります。 これらの場所にcertifi/cacert.pemが見つからない場合は、ツールのディレクトリ内を検索してください。
Curl、Composer、Ruby/Fastlaneなどの多くのツールは、TLSにOpenSSLを利用しています。 デフォルトでは、OpenSSLはLinux上でシステムCAバンドルを読みますが、macOS(Homebrew OpenSSL)およびWindowsでは、OS信頼ストアの代わりに独自のCAファイルを使用します。
合成バンドルにSSL_CERT_FILE変数を設定してください。
必要に応じて、OpenSSLベースの各ツールを合成バンドルに指すように設定するか、OpenSSL証明書ディレクトリにカトルートCAを追加し、c_rehashを実行します。
Curl
macOS(SecureTransport)、Windows(Schannel)、およびほとんどのLinuxビルド(OpenSSL/LibreSSL)の組み込みcurlで、追加の設定は不要です。 これらのビルドはすでにOSの信頼ストアを使用しています。
curlが使用しているTLSライブラリを確認するには、次を実行してください: curl --version
OSストアを使用しないOpenSSL/LibreSSLビルドでは、CURL_CA_BUNDLE変数を合成バンドルファイルに指すように明示的に設定します(上記の構文を使用)。
Composer (PHP)
合成バンドルを使用するようにComposerを設定します。composer config -g cafile /path/to/cato_combined_ca.pem
Ruby、Bundler、Fastlane
合成バンドルを信頼するようにRuby/Fastlaneを設定します。bundle config --global ssl_ca_cert /path/to/cato_combined_ca.pem
Node.jsとnpmは、OSに応じて証明書ストアを異なる方法で処理します。
- Windows - Node.jsはシステムストアを使用することが多いため、カトルートCAをシステム全体にインストールするだけで通常は十分です。
- Linux/macOS - Node.jsは通常、独自のCAバンドルを使用しますが、それにはCato Root CAが含まれていません。
Javaはcacertsという信頼ストアファイルを使用します。 TLSインスペクションを可能にするためには、このストアにCato Root CAをインポートします。
cacertsのデフォルトのパスワードはchangeitです。
Linux/macOS
sudo keytool -importcert -noprompt \
-alias cato-root-ca \
-file /path/to/CatoNetworksTrustedRootCA.pem \
-keystore $JAVA_HOME/lib/security/cacerts \
-storepass changeit
Windows (PowerShell)
keytool -importcert -noprompt `
-alias cato-root-ca `
-file "C:\path\to\CatoNetworksTrustedRootCA.pem" `
-keystore "C:\Program Files\Java\jdk-17\lib\security\cacerts" `
-storepass changeit
一度cacertsストアに追加されると、Javaベースのツール(例えば、Maven、Gradle、JDBCドライバー、Salesforce Apex Data Loader)はCato CAを信頼します。
Dockerはホスト上のエンジン/デーモンと任意のイメージ/コンテナの2つの部分で構成されます。
- Docker エンジンはホストOSの信頼ストアを使用するため、Cato Root CAをシステム全体にインストールすることが十分です。
- イメージの場合、コンテナ内にCato Root CAをインポートする必要があります。
Debian/Ubuntuベースのイメージ:
COPY CatoNetworksTrustedRootCA.pem /usr/local/share/ca-certificates/cato-root-ca.crt
RUN update-ca-certificates
RHEL/CentOSベースのイメージ:
COPY CatoNetworksTrustedRootCA.pem /etc/pki/ca-trust/source/anchors/
RUN update-ca-trust
これにより、コンテナ内のアプリケーションがCatoインスペクションされたTLSトラフィックを信頼できるようになります。
Android StudioはバンドルされたJDK内の独自のcacerts信頼ストアを使用します。 TLSインスペクションを可能にするためには、そのストアにCato Root CAをインポートします。 デフォルトのパスワードはchangeitです。
Linux/macOS
sudo keytool -importcert -noprompt \
-alias cato-root-ca \
-file /path/to/CatoNetworksTrustedRootCA.pem \
-keystore $ANDROID_STUDIO_JDK/lib/security/cacerts \
-storepass changeit
Windows (PowerShell)
keytool -importcert -noprompt `
-alias cato-root-ca `
-file "C:\path\to\CatoNetworksTrustedRootCA.pem" `
-keystore "C:\Program Files\Android\Android Studio\jre\lib\security\cacerts" `
-storepass changeit
0件のコメント
記事コメントは受け付けていません。