Skip to main content

TLS 오류 문제 해결

어플라이언스에 TLS 문제가 발생하는 경우 이를 해결하기 위한 작업을 수행할 수 있습니다.

키 파일에서 암호 제거

OpenSSL이 설치된 Linux 머신이 있는 경우 암호를 제거할 수 있습니다.

  1. 원본 키 파일의 이름을 바꿉니다.

    mv yourdomain.key yourdomain.key.orig
    
  2. 암호 없이 새 키를 생성합니다.

    openssl rsa -in yourdomain.key.orig -out yourdomain.key
    

이 명령을 실행하면 키 암호를 입력하라는 메시지가 표시됩니다.

OpenSSL에 대한 자세한 내용은 OpenSSL 설명서를 참조하세요.

TLS 인증서 또는 키를 PEM 형식으로 변환

OpenSSL이 설치되어 있는 경우 openssl 명령을 사용하여 키를 PEM 형식으로 변환할 수 있습니다. 예를 들어 키를 DER 형식에서 PEM 형식으로 변환할 수 있습니다.

openssl rsa -in yourdomain.der -inform DER -out yourdomain.key -outform PEM

그렇지 않으면 SSL 변환기 도구를 사용하여 인증서를 PEM 형식으로 변환할 수 있습니다. 자세한 내용은 SSL 변환기 도구 설명서를 참조하세요.

키를 업로드한 후 응답하지 않는 설치

TLS 키를 업로드한 후 GitHub Enterprise Server 인스턴스이(가) 응답하지 않는 경우 TLS 인증서 복사본을 비롯한 특정 세부 정보를 포함하여 GitHub Enterprise 지원에 문의하세요. 프라이빗 키가 포함되지 않았는지 확인합니다.

인증서 유효성 오류

웹 브라우저 및 명령줄 Git과 같은 클라이언트는 TLS 인증서의 유효성을 확인할 수 없는 경우 오류 메시지를 표시합니다. 이 문제는 클라이언트에서 인식할 수 없는 중간 루트 인증서에서 발급된 “연결된 루트” 인증서뿐만 아니라 자체 서명된 인증서에서도 자주 발생합니다.

CA(인증 기관)에서 서명한 인증서를 사용하는 경우 GitHub Enterprise Server에 업로드하는 인증서 파일에 해당 CA의 루트 인증서가 포함된 인증서 체인이 있어야 합니다. 해당 파일을 만들려면 전체 인증서 체인(또는 “인증서 번들”)을 사용자 인증서 끝에 연결하여 호스트 이름이 포함된 보안 주체 인증서가 맨 앞에 오도록 합니다. 대부분의 시스템에서 다음과 유사한 명령을 사용하여 이 작업을 수행할 수 있습니다.

cat yourdomain.com.crt bundle-certificates.crt > yourdomain.combined.crt

인증 기관 또는 TLS 공급업체에서 인증서 번들(예: bundle-certificates.crt)을 다운로드할 수 있습니다.

자체 서명되거나 신뢰할 수 없는 CA(인증 기관) 루트 인증서 설치

GitHub Enterprise Server 어플라이언스가 자체 서명되거나 신뢰할 수 없는 인증서를 사용하는 네트워크의 다른 머신과 상호 작용하는 경우 HTTPS를 통해 해당 시스템에 액세스하려면 서명하는 CA의 루트 인증서를 시스템 전체 인증서 저장소로 가져와야 합니다. 내부 인증 기관이 서명한 인증서를 사용하려면 루트 인증서와 중간 인증서를 설치해야 합니다.

  1. 로컬 인증 기관에서 CA의 루트 인증서를 받고 PEM 형식인지 확인합니다.

  2. 포트 122에서 SSH를 통해 “admin” 사용자로 GitHub Enterprise Server 어플라이언스에 파일을 복사합니다.

    scp -P 122 rootCA.crt admin@HOSTNAME:/home/admin
    
  3. 포트 122에서 SSH를 통해 “admin” 사용자로 GitHub Enterprise Server 관리 셸에 연결합니다.

    ssh -p 122 admin@HOSTNAME
    
  4. 인증서를 시스템 전체 인증서 저장소로 가져옵니다.

    ghe-ssl-ca-certificate-install -c rootCA.crt
    
  5. 구성을 적용하려면 다음 명령을 실행합니다.

    참고: 구성을 실행하는 동안 의 서비스가 다시 시작될 수 있으므로 짧은 가동 중지 시간이 발생할 수 있습니다.

    Shell
    ghe-config-apply
    
  6. 구성 실행이 완료될 때까지 기다립니다.

TLS 인증서 업데이트

ghe-ssl-certificate-setup 명령줄 유틸리티를 사용하여 GitHub Enterprise Server 인스턴스에 대한 자체 서명된 인증서를 새로 생성하거나 기존 TLS 인증서를 업데이트할 수 있습니다. 자세한 내용은 "명령줄 유틸리티"을(를) 참조하세요.

TLS 인증서를 업데이트한 후 서버 통신 문제 해결

인증서를 업데이트한 후에 서버에서 통신 또는 기타 문제가 발생하는 경우 설치에서 파일 또는 symlink가 누락되었을 수 있습니다. 웹 로그 출력에서 다음 메시지를 확인하세요.

 certificate verify failed (unable to get issuer certificate)

이 메시지가 표시되면 인증서가 없거나 잘못 구성된 것일 수 있습니다. 이로 인해 애플리케이션의 서비스가 서로 통신하지 못할 수 있습니다.

이 오류를 해결하려면 다음을 수행하세요.

  1. 현재 TLS 인증서 디렉터리를 백업합니다.

  2. /etc/ssl/certs 디렉터리에서 누락되었을 수 있는 인증서와 콘텐츠를 새로 고침하려면 다음 명령을 실행합니다.

    Shell
    sudo update-ca-certificates --verbose --fresh
    

문제가 지속될 경우 GitHub Enterprise 지원에 문의하세요.