Cato TLS 검사와 함께 사용할 수 있도록 CLI 도구와 개발 프레임워크 구성하기

개요

이 문서는 명령줄 도구와 개발자 프레임워크가 Cato Networks TLS 검증 인증서를 신뢰하도록 설정하여, HTTPS 작동 시 트래픽이 검사될 때 오류가 발생하지 않도록 하는 방법을 설명합니다. 시스템 전체에 Cato 인증서를 설치하는 방법과 OS 신뢰 저장소를 사용하지 않는 특정 도구에 인증서를 지정하는 방법을 다룹니다.

아래의 모든 예에서 /path/to/CatoNetworksTrustedRootCA.pem을 실제 환경에 맞는 경로로 교체하십시오.

인증서 시스템 전체 설치 (추천)

호스트 OS에 Cato 루트 CA를 설치하면 대부분의 응용 프로그램이 자동으로 검사된 트래픽을 신뢰할 수 있습니다. Cato 인증서 설치 방법에 설명된 대로 Cato 루트 CA를 설치할 수 있습니다.

예상대로 작동하지 않는 경우 OS 신뢰 저장소에 Cato 루트 CA를 수동으로 추가할 수 있습니다. Cato 인증서 설치에 대한 추가 정보는 관련 기사를 참조하십시오:

결합된 인증서 번들 (신뢰 번들을 덮어쓰는 도구 전용)

일부 도구는 CA 신뢰 번들을 확장하는 대신 덮어씀으로써 그 전에 존재하던 모든 인증서를 삭제합니다. 이러한 도구들이 공개 웹사이트와 Cato가 검사한 트래픽을 신뢰할 수 있도록, OS 신뢰 루트 인증서에 Cato 루트 CA를 포함한 결합된 번들을 생성하십시오.

추천: Cato 루트 CA를 시스템 저장소에 설치하십시오. 결합된 번들은 단일 CA 파일이 필요한 도구에만 사용하십시오.

유지 관리 팁: 주기적으로 결합된 번들을 재구성하십시오 (예: 매월 또는 OS 신뢰 업데이트 후).

Windows (PowerShell)

# 상승된 권한의 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

macOS

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

Linux

OS 번들과 Cato 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 신뢰 저장소를 무시하거나 사용 불가능한 환경에서 실행됩니다. 이러한 경우 Cato 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 (Requests, AWS CLI, Azure CLI, Gcloud CLI)

Python 도구는 종종 OS 신뢰 저장소와 분리된 자체 CA 번들을 제공하는 certifi를 사용합니다.

권장 일반 Python 수정

도구별 Python 수정

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이 보이지 않으면 도구의 디렉토리 내에서 검색하십시오.

OpenSSL (Curl, Composer, Ruby/Fastlane)

Curl, Composer 및 Ruby/Fastlane과 같은 많은 도구는 TLS 용 OpenSSL에 의존합니다. 기본적으로 OpenSSL은 Linux에서 시스템 CA 번들을 읽지만 macOS (Homebrew OpenSSL)와 Windows에서 OS 신뢰 저장소 대신 자체 CA 파일을 사용합니다.

일반 OpenSSL 수정 권장

SSL_CERT_FILE 변수를 결합된 번들로 설정하십시오.

도구별 OpenSSL 수정

필요한 경우, 결합된 번들을 가리키도록 각 OpenSSL 기반 도구를 구성하거나 OpenSSL 인증서 디렉토리에 Cato 루트 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

Node.js 및 npm은 OS에 따라 인증서 저장소를 다르게 처리합니다.

  • Windows - Node.js는 종종 시스템 저장소를 사용하므로, Cato 루트 CA를 시스템 전체에 설치하는 것이 일반적으로 충분합니다.
  • Linux/macOS - Node.js는 일반적으로 자체 CA 번들을 사용하며, 여기에는 Cato 루트 CA가 포함되어 있지 않습니다.

Node.js

TLS 오류가 발생하면 Cato 루트 CA를 신뢰하도록 Node.js를 구성하십시오:

  • NODE_EXTRA_CA_CERTS 변수를 Cato 루트 CA 파일(결합 번들이 아님)을 가리키도록 설정하십시오:

    export NODE_EXTRA_CA_CERTS=/path/to/CatoNetworksTrustedRootCA.pem

이 변수는 Node.js가 기본으로 제공되는 CA 외에 추가 CA를 신뢰하도록 합니다.

npm

npm은 단일 CA 파일 대신 결합 번들을 필요로 합니다. 다음과 같이 npm을 구성하십시오:

npm config set cafile "/path/to/cato_combined_ca.pem"

이렇게 하면 npm이 Cato 루트 CA와 공공 루트 CA 모두를 신뢰하게 됩니다.

Java (Maven, Gradle, JDBC, 등...)

Java는 cacerts라는 자체 신뢰 저장소 파일을 사용합니다. TLS 검사를 활성화하려면 Cato 루트 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

모든 Java 기반 도구(Maven, Gradle, JDBC 드라이버, Salesforce Apex Data Loader 등)는 cacerts 저장소에 Cato CA가 추가되면 신뢰하게 됩니다.

Docker

Docker는 두 부분으로 구성되어 있습니다: 호스트에 있는 엔진/데몬과 모든 이미지/컨테이너.

  • Docker 엔진은 호스트 OS 신뢰 저장소를 사용하므로 Cato 루트 CA를 시스템 전체에 설치하는 것으로 충분합니다.
  • 이미지의 경우, 컨테이너에 Cato 루트 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 트래픽을 신뢰할 수 있도록 합니다.

Go

Go는 자체 TLS 구현을 가지고 있지만 기본적으로 OS 신뢰 저장소에 의존합니다. Cato 루트 CA를 시스템 전체에 설치하는 것이 일반적으로 충분합니다.

일부 경우(예: CI/CD 파이프라인이나 컨테이너)에는 환경 변수 SSL_CERT_FILE를 설정하여 결합 번들 파일을 가리켜 신뢰 구성 설정을 명시적으로 오버라이드해야 할 수 있습니다. 

Android Studio

Android Studio는 번들 JDK 내부의 자체 cacerts 신뢰 저장소를 사용합니다. TLS 검사를 활성화하려면 그 저장소에 Cato 루트 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

Git

Git은 일반적으로 OS 신뢰 저장소를 사용합니다. Cato 루트 CA가 시스템 전체에 설치되어 있는 경우, 추가 구성이 필요하지 않습니다.

Git이 Cato 루트 CA를 신뢰하지 못하면 결합 번들을 사용하도록 명시적으로 구성하십시오:

git config --global http.sslCAInfo /path/to/cato_combined_ca.pem

도움이 되었습니까?

1명 중 0명이 도움이 되었다고 했습니다.

댓글 0개