전송 계층 보안 정보
SSL을 대체한 TLS는 GitHub Enterprise Server를 처음 시작할 때 자체 서명된 인증서로 사용하도록 설정되고 구성됩니다. 자체 서명된 인증서는 웹 브라우저 및 Git 클라이언트에서 신뢰할 수 없으므로 TLS를 사용하지 않도록 설정하거나 Let's Encrypt와 같은 신뢰할 수 있는 인증 기관에서 서명한 인증서를 업로드할 때까지 클라이언트는 인증서 경고를 보고합니다.
SSL을 사용하도록 설정하면 GitHub Enterprise Server 어플라이언스가 HTTP 엄격한 전송 보안 헤더를 보냅니다. TLS를 사용하지 않도록 설정하면 브라우저에서 HTTP로 프로토콜 다운그레이드를 허용하지 않으므로 사용자가 어플라이언스에 액세스할 수 없게 됩니다. 자세한 내용은 Wikipedia에서 “HSTS(HTTP Strict Transport Security)”를 참조하세요.
경고: 부하 분산 장치에서 HTTPS 연결을 종료할 때 부하 분산 장치에서 GitHub Enterprise Server로의 요청도 HTTPS를 사용해야 합니다. HTTP에 대한 연결을 다운그레이드하는 것은 지원되지 않습니다.
사용자가 2단계 인증에 FIDO U2F를 사용하려면 인스턴스에 대해 TLS를 사용하도록 설정해야 합니다. 자세한 내용은 "2단계 인증 구성"을 참조하세요.
필수 조건
프로덕션에서 TLS를 사용하려면 신뢰할 수 있는 인증 기관에서 서명한 암호화되지 않은 PEM 형식의 인증서가 있어야 합니다. 내부 인증 기관에서 서명한 인증서를 사용하려면 루트 인증서와 중간 인증서를 설치해야 합니다. 자세한 내용은 "TLS 오류 문제 해결"을 참조하세요.
또한 인증서는 "하위 도메인 격리 사용"에 나열된 하위 도메인에 대해 구성된 주체 대체 이름이 필요하며 중간 인증 기관에서 서명한 경우 전체 인증서 체인을 포함해야 합니다. 자세한 내용은 Wikipedia에서 “주체 대체 이름”을 참조하세요.
ghe-ssl-generate-csr
명령을 사용하여 인스턴스에 대한 CSR(인증서 서명 요청)을 생성할 수 있습니다. 자세한 내용은 "명령줄 유틸리티"을 참조하세요.
키는 RSA 키여야 하며 암호가 없어야 합니다. 자세한 내용은 "TLS 오류 문제 해결.
사용자 지정 TLS 인증서 업로드
경고: TLS를 구성하면 GitHub Enterprise Server 인스턴스에 약간의 가동 중지 시간이 발생합니다.
-
GitHub Enterprise Server의 관리 계정에서 페이지의 오른쪽 위 모서리에서 을 클릭합니다.
-
“Site admin”(사이트 관리자) 페이지에 아직 없는 경우 왼쪽 상단에서 Site admin(사이트 관리자)을 클릭합니다.
-
" 사이트 관리자" 사이드바에서 관리 콘솔를 클릭합니다.
-
"설정" 사이드바에서 개인 정보를 클릭합니다.
-
TLS only (recommended) (TLS만(권장))를 선택합니다.
-
“TLS 프로토콜 지원”에서 허용하려는 프로토콜을 선택합니다.
-
"인증서"에서 파일 선택을 클릭한 다음 설치할 TLS 인증서 또는 인증서 체인(PEM 형식)을 선택합니다. 일반적으로 이 파일에는 .pem, .crt 또는 .cer 확장명이 있습니다.
-
"암호화되지 않은 키"에서 파일 선택을 클릭한 다음 설치할 RSA 키(PEM 형식)를 선택합니다. 일반적으로 이 파일에는 .key 확장명이 있습니다.
-
"설정" 사이드바에서 설정 저장을 클릭합니다.
참고: 관리 콘솔에 설정을 저장하면 시스템 서비스가 다시 시작되어 사용자에게 표시되는 가동 중지 시간이 발생할 수 있습니다.
-
구성 실행이 완료될 때까지 기다립니다.
Let's Encrypt 지원 정보
Let's Encrypt는 ACME 프로토콜을 사용하여 브라우저에서 신뢰하는 무료 자동화된 TLS 인증서를 발급하는 퍼블릭 인증 기관입니다. 필요한 수동 유지 관리 없이 어플라이언스의 Let's Encrypt 인증서를 자동으로 가져오고 갱신할 수 있습니다.
Let's Encrypt 자동화를 사용하려면 HTTP를 통해 공개적으로 액세스할 수 있는 호스트 이름으로 어플라이언스를 구성해야 합니다. 또한 어플라이언스에서 아웃바운드 HTTPS 연결을 만들 수 있어야 합니다.
Let's Encrypt를 사용하여 TLS 인증서 관리 자동화를 사용하도록 설정하면 GitHub Enterprise Server 인스턴스이(가) Let's Encrypt 서버에 연결하여 인증서를 가져옵니다. 인증서를 갱신하려면 Let's Encrypt 서버가 인바운드 HTTP 요청을 사용하여 구성된 도메인 이름 제어의 유효성을 검사해야 합니다.
GitHub Enterprise Server 인스턴스의 명령줄 유틸리티를 사용하여 ghe-ssl-acme
Let's Encrypt 인증서를 자동으로 생성할 수도 있습니다. 자세한 내용은 "명령줄 유틸리티"을 참조하세요.
Let's Encrypt를 사용하여 TLS 구성
Let's Encrypt 자동화를 사용하려면 HTTP를 통해 공개적으로 액세스할 수 있는 호스트 이름으로 어플라이언스를 구성해야 합니다. 또한 어플라이언스에서 아웃바운드 HTTPS 연결을 만들 수 있어야 합니다.
경고: TLS를 구성하면 GitHub Enterprise Server 인스턴스에 약간의 가동 중지 시간이 발생합니다.
-
GitHub Enterprise Server의 관리 계정에서 페이지의 오른쪽 위 모서리에서 을 클릭합니다.
-
“Site admin”(사이트 관리자) 페이지에 아직 없는 경우 왼쪽 상단에서 Site admin(사이트 관리자)을 클릭합니다.
-
" 사이트 관리자" 사이드바에서 관리 콘솔를 클릭합니다.
-
"설정" 사이드바에서 개인 정보를 클릭합니다.
-
TLS only (recommended) (TLS만(권장))를 선택합니다.
-
Let's Encrypt를 사용하여 TLS 인증서 관리 자동화 사용을 선택합니다.
-
"설정" 사이드바에서 설정 저장을 클릭합니다.
참고: 관리 콘솔에 설정을 저장하면 시스템 서비스가 다시 시작되어 사용자에게 표시되는 가동 중지 시간이 발생할 수 있습니다.
-
구성 실행이 완료될 때까지 기다립니다.
-
"설정" 사이드바에서 개인 정보를 클릭합니다.
-
TLS 인증서 요청을 클릭합니다.
-
“상태”가 “시작됨”에서 “완료”로 변경될 때까지 기다립니다.
-
구성 저장을 클릭합니다.