Skip to main content
Skip to content

만료된 TLS 인증서

GitHub Enterprise Server 인스턴스에서 사용하는 인증서가 만료되면 서비스는 더 이상 TLS 연결의 유효성을 검사할 수 없습니다. 사용자가 인스턴스에 액세스하지 못할 수 있으며 내부 연결에 의존하는 기능이 작동을 중지합니다.

Symptoms

  • 사용자는 인스턴스에 액세스할 수 없습니다.
  • 풀 리퀘스트는 새 푸시로 업데이트되지 않습니다.
  • 웹후크는 배달되지 GitHub Actions 않으며 워크플로는 트리거되지 않습니다.
  • /var/log/github/exceptions.log에는 certificate verify failed 오류가 있습니다.

원인

모든 인증서는 해당 notBefore 날짜와 notAfter 날짜 사이에서만 유효합니다. 인스턴스에 대한 인증서 또는 해당 체인의 중간 또는 루트 인증서가 만료된 경우 유효성 검사가 실패합니다.

인스턴스에 설치된 CA(사용자 지정 인증 기관) 인증서는 동일한 방식으로 만료될 수 있습니다.

문제 확인 중

  1. 관리 셸에 SSH로 접속합니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

  2. 인스턴스에서 사용 중인 인증서의 유효 날짜를 확인합니다.

    openssl x509 -in /etc/haproxy/ssl.crt -noout -subject -dates
    

notAfter 날짜가 지났으면 인증서가 만료됩니다.

  1. 사용자 지정 CA 인증서를 설치한 경우 나열합니다.

    ghe-ssl-ca-certificate-install -l
    
  2. 목록의 파일 이름으로 CERTIFICATE를 바꿔 각 항목의 유효 날짜를 확인합니다.

    openssl x509 -in /usr/local/share/ca-certificates/CERTIFICATE -noout -subject -dates
    

문제 해결하기

경고

인증서를 교체하면 구성 실행이 시작되고, 이로 인해 서비스가 다시 시작됩니다. 먼저 유지 관리 모드를 사용하도록 설정하여 사용자에게 미치는 영향을 줄입니다. 자세한 내용은 유지 관리 모드 사용 설정 및 예약을(를) 참조하세요.

  1. 유효한 인증서를 업로드하거나 Let's Encrypt를 사용하도록 설정하여 인증서를 관리하도록 설정하세요. 자세한 내용은 TLS 구성을(를) 참조하세요.

    업로드하는 파일에 전체 인증서 체인을 포함하세요. 자세한 내용은 TLS 오류 문제 해결을(를) 참조하세요.

  2. 만료된 각 사용자 지정 CA 인증서에 대해 더 이상 필요하지 않은 경우 ghe-ssl-ca-certificate-install -r를 사용하여 해당 인증서를 제거합니다. 인스턴스가 여전히 해당 CA를 신뢰해야 하는 경우 대신 ghe-ssl-ca-certificate-install -c로 유효한 대체 인증서를 설치합니다. 그런 다음, 구성을 적용합니다. 자세한 내용은 명령줄 유틸리티을(를) 참조하세요.

  3. 유지 관리 모드를 사용하도록 설정한 경우 구성 실행이 완료되면 사용하지 않도록 설정합니다.

연락하기 GitHub 지원

인증서가 아직 유효하지만 위의 증상이 표시되는 경우 체인의 중간 또는 루트 인증서가 만료되었을 수 있습니다. 이를 확인할 수 없거나 인증서를 교체한 후에도 문제가 계속되면 문의하세요 GitHub 지원. 자세한 내용은 지원 티켓 만들기을(를) 참조하세요.

GitHub 지원에 프라이빗 키를 보내지 마세요.

이미 티켓을 연 경우 지원 번들을 첨부하면 GitHub 지원 문제를 더 빠르게 진단하는 데 도움이 됩니다. 자세한 내용은 GitHub 지원에 데이터 제공을(를) 참조하세요.

추가 읽기