Infograb logo
자체 서명된 인증서로 Teleport 실행

이 가이드는 TLS 인증서를 구성하지 않고도 비생산 환경에서 Teleport를 평가하는 방법을 설명합니다.
자체 서명된 인증서를 사용하여 Teleport를 실행하는 방법과 이 구성으로 인해 발생하는 문제를 다룰 것입니다.

Teleport Proxy 서비스는 TLS x509 인증서를 통해 클라이언트에 대해 인증합니다.
Proxy 서비스에 인증서가 구성되지 않은 경우, 자체 서명된 인증서를 사용하며, 클라이언트는 기본적으로 이를 신뢰하지 않습니다.
클러스터의 웹 UI를 방문할 때 제시된 인증서는 브라우저에서 신뢰되지 않을 것입니다. 이 경우,
웹사이트가 신뢰되지 않다는 경고 페이지가 표시될 것입니다.

추가적으로, 자체 서명된 인증서는 teleport , tsh , 및 tctl 이 Proxy 서비스에 연결하는 것을 방해할 수 있습니다.

생산 환경에서는 자체 서명된 인증서를 사용하지 마십시오

클러스터를 자체 서명된 인증서를 신뢰하도록 구성하면
Proxy 서비스와 클라이언트 간의 통신을 가로채는 것이 더 쉬워지므로
인증서의 진위를 확인할 방법이 없습니다.
따라서 생산 환경에서 Teleport를 사용할 때에는 인증서를 올바르게 구성하는 것이 중요합니다.

전제 조건

  • 실행 중인 Teleport 클러스터. 설정 방법에 대한 자세한 내용은
    시작하기 가이드를 참조하세요 (TLS 인증서 설정은 건너뜁니다).

  • 인증서나 ACME 자동 인증서가 구성되지 않은 Teleport Proxy 서비스.
    예를 들어, 이 Teleport Proxy 서비스 구성은 자체 서명된 인증서를 사용할 것입니다:

    proxy_service:
      enabled: "yes"
      # HTTPS 연결을 위한 TLS 인증서.
      https_keypairs: []
      # ACME를 사용하여 letsencrypt.org에서 자동 인증서를 가져옵니다.
      acme: {}
    
  • tctltsh 클라이언트 도구의 버전은 >= 17.0.0-dev 입니다.
    설치에서 설치 방법을 확인하세요.

    자세한 내용은 설치 를 참조하세요.

  • 실행 중인 Teleport 클러스터. 설정 방법에 대한 자세한 내용은
    엔터프라이즈 시작하기 가이드를 참조하세요.

  • 인증서나 ACME 자동 인증서가 구성되지 않은 Teleport Proxy 서비스.
    예를 들어, 이 Teleport Proxy 서비스 구성은 자체 서명된 인증서를 사용할 것입니다:

    proxy_service:
      enabled: "yes"
      # HTTPS 연결을 위한 TLS 인증서.
      https_keypairs: []
      # ACME를 사용하여 letsencrypt.org에서 자동 인증서를 가져옵니다.
      acme: {}
    
  • tctltsh 클라이언트 도구의 버전은 >= 17.0.0-dev 입니다.
    설치에서 설치 방법을 확인하세요.

Teleport 바이너리 및 클라이언트와 함께 자체 서명된 인증서 사용 방법

teleport

teleport 를 사용하여 Teleport 서비스를 실행할 때,
시작하는 서비스가 Teleport Proxy 서비스 엔드포인트를 가리키도록 구성되어 있고, Proxy 서비스가 자체 서명된 인증서를 사용하는 경우,
teleport 는 Proxy 서비스 TLS 인증서 검증을 비활성화하기 위해 --insecure 플래그로 실행해야 합니다. 이 경우는 다음과 같습니다:

  • Teleport 구성 파일 proxy_server 설정이 Proxy 서비스 엔드포인트로 설정됨:
    • proxy_server: "tele.example.com:443" 또는
    • proxy_server: "tele.example.com:3080"
  • Teleport가 Proxy 서비스 엔드포인트를 가리키는 --auth-server 플래그로 시작됨:
    • teleport [app | db] start --auth-server=tele.example.com:443 또는
    • teleport [app | db] start --auth-server=tele.example.com:3080

TLS 인증서 검증을 비활성화하는 방법은
Teleport를 어떻게 실행하느냐에 따라 다릅니다: teleport CLI를 사용하거나, Helm 차트를 사용하거나, systemd를 통해 실행할 경우:

명령줄에서 teleport 를 실행할 때, --insecure 플래그를 전달하여 TLS 인증서 유효성을 비활성화합니다. 예를 들어:

$ sudo teleport start -c /etc/teleport.yaml --insecure
$ sudo teleport app start -c /etc/teleport.yaml --insecure
$ sudo teleport db start -c /etc/teleport.yaml --insecure

--insecure 플래그가 없으면 x509: “tele.example.com” 인증서가 신뢰되지 않습니다.와 같은 오류 메시지가 표시됩니다.

teleport-cluster Helm 차트를 사용하는 경우, extraArgs 를 설정하여 추가 인수인 --insecure 를 포함시킵니다.

값 파일 내의 필드 예시는 다음과 같습니다:

extraArgs:
- "--insecure"

--set 플래그를 사용할 때는 다음 문법을 사용합니다:

--set "extraArgs={--insecure}"

teleport-kube-agent 차트를 사용하는 경우, insecureSkipProxyTLSVerify 플래그를 true 로 설정합니다.

값 파일에서 이는 다음과 같이 보일 것입니다:

insecureSkipProxyTLSVerify: true

--set 플래그를 사용할 때는 다음 문법을 사용합니다:

--set insecureSkipProxyTLSVerify=true

Teleport의 systemd 유닛 파일을 찾기 위해 다음 명령어를 실행합니다:

$ systemctl status teleport

다음과 유사한 출력이 표시되며, 시스템 구성 파일이 적용되는 유닛 파일의 경로 (/lib/systemd/system/teleport.service )를 포함합니다:

● teleport.service - Teleport 서비스 Loaded: loaded (/lib/systemd/system/teleport.service; disabled; vendor preset: enabled) Active: inactive (dead)

Teleport 유닛 파일을 수정하여 ExecStart 줄에 --insecure 를 포함시킵니다. 예를 들어:

ExecStart=/usr/local/bin/teleport start --pid-file=/run/teleport.pid --insecure

유닛 파일을 저장한 후에는 변경 사항이 적용되도록 데몬을 다시 로드해야 합니다:

$ sudo systemctl daemon-reload
$ sudo systemctl restart teleport.service

tctl

tctl 을 Teleport Proxy Service를 통해 원격으로 실행할 때, Proxy Service가 자체 서명된 인증서를 사용하는 경우, tctl 은 Proxy Service의 인증서를 신뢰하지 않습니다.
인증서 검증을 비활성화하려면 tctl 명령을 실행할 때 --insecure 플래그를 사용하십시오.

tctl 은 Auth Service에 연결하는 방법을 몇 가지 방식으로 결정합니다:

  • tsh 로 로그인 한 후 로컬 프로파일에서 구성 로딩
  • 인자로 전달된 구성 파일에서 로딩: tctl -c /etc/teleport.yaml
  • --auth-server 플래그를 직접 전달, 예를 들면:
    • tctl --auth-server=tele.example.com:443 또는
    • tctl --auth-server=tele.example.com:3080

이 방법들 중 어떤 것이든 Teleport Proxy Service를 통해 연결을 시도하고, Proxy Service가 자체 서명된 인증서를 사용하는 경우, tctl 은 Proxy Service의 인증서를 신뢰하지 않으며 신뢰할 수 없거나 유효하지 않은 인증서에 대한 오류 메시지가 표시됩니다. 이때 --insecure 플래그도 함께 tctl 에 전달하지 않는 한 오류 메시지가 나타납니다.

예를 들어: tctl status --insecure

tsh

tsh 를 실행할 때, tsh 가 연결할 Teleport Proxy Service 주소를 지정해야 합니다.
Teleport Proxy Service가 자체 서명된 인증서를 사용하는 경우, tsh 는 Proxy Service 인증서를 신뢰하지 않습니다.
이 경우 tsh 를 사용하려면 --insecure 플래그를 사용해야 합니다.

예를 들어: tsh login --proxy=tele.example.com:443 --user=alice --insecure

Teleport Connect

Teleport Connect를 사용하면 --insecure 플래그로 TLS 인증서 검증을 건너뛸 수 있습니다.

추가 정보

Teleport 원문 보기