Configurar o TLS
Você pode configurar o protocolo de Segurança de Camada de Transporte (TLS, Transport Layer Security) na sua instância do GitHub Enterprise Server para uso de certificados assinados por uma autoridade de certificação confiável.
Neste artigo
- Sobre o protocolo Transport Layer Security
- Pré-requisitos
- Fazer upload de um certificado TLS personalizado
- Sobre o suporte Let's Encrypt
- Configurar o TLS usando Let's Encrypt
Sobre o protocolo Transport Layer Security
O TLS, protocolo que substituiu o SSL, fica habilitado e configurado com um certificado autoassinado quando o GitHub Enterprise Server é iniciado pela primeira vez. Como os certificados autoassinados não são considerados confiáveis por navegadores da web e clientes Git, esses clientes reportarão avisos de certificados até você desabilitar o TLS ou fazer upload de um certificado assinado por uma autoridade confiável, como o Let's Encrypt.
O appliance do GitHub Enterprise Server enviará os headers de HTTP Strict Transport Security quando o SSL for habilitado. Desabilitar o TLS fará os usuários perderem o acesso ao appliance, pois seus navegadores não permitirão o downgrade de protocolo para HTTP. Para obter mais informações, consulte "HTTP Strict Transport Security (HSTS)" na Wikipedia.
Warning: When terminating HTTPS connections on a load balancer, the requests from the load balancer to GitHub Enterprise Server also need to use HTTPS. Downgrading the connection to HTTP is not supported.
Para permitir o uso do FIDO U2F para autenticação de dois fatores, você deve habilitar o TLS na sua instância. Para obter mais informações, consulte "Configurar a autenticação de dois fatores".
Pré-requisitos
Para usar o TLS em produção, você deve ter um certificado em formato PEM não criptografado assinado por uma autoridade de certificação confiável.
Seu certificado também precisará de nomes alternativos da entidade (SAN, Subject Alternative Names) configurados para os subdomínios listados em "Habilitar isolamento de subdomínio" e deverá incluir a cadeia completa de certificados, caso tenha sido assinado por uma autoridade de certificação intermediária. Para obter mais informações, consulte "Subject Alternative Name" na Wikipedia.
Você pode gerar uma solicitação de assinatura de certificado (CSR, Certificate Signing Request) para sua instância usando o comando ghe-ssl-generate-csr
. Para obter mais informações, consulte "Utilitários de linha de comando".
Fazer upload de um certificado TLS personalizado
-
In the upper-right corner of any page, click .
-
In the left sidebar, click Console de gerenciamento.
-
In the left sidebar, click Privacy.
-
Select TLS only (recommended).
-
Em "TLS Protocol support" (Suporte ao protocolo TLS), selecione os protocolos que deseja permitir.
-
Em "Certificate" (Certificado), clique em Choose File (Escolher arquivo) para escolher um certificado TLS ou uma cadeia de certificados (no formato PEM) para instalação. Em geral, esse arquivo tem extensão .pem, .crt ou .cer.
-
Em "Unencrypted key" (Chave não criptografada), clique em Choose File (Escolher arquivo) para escolher a chave TLS (em formato PEM) para instalação. Em geral, esse arquivo tem extensão .key.
Aviso: a chave TLS não deve ter frase secreta. Para obter mais informações, consulte "Remover a frase secreta de um arquivo de chave".
-
Under the left sidebar, click Save settings.
Sobre o suporte Let's Encrypt
Let's Encrypt é uma autoridade de certificação pública que emite certificados TLS gratuitos, automatizados e reconhecidos como confiáveis pelos navegadores usando o protocolo ACME. Você pode obter e renovar automaticamente os certificados Let's Encrypt no seu appliance sem depender de manutenção manual.
To use Let's Encrypt automation, your appliance must be configured with a hostname that is publicly accessible over HTTP. The appliance must also be allowed to make outbound HTTPS connections.
Ao habilitar a automação do gerenciamento de certificados TLS usando o Let's Encrypt, sua sua instância do GitHub Enterprise Server entrará em contato com os servidores do Let's Encrypt para obter um certificado. Para renovar um certificado, os servidores do Let's Encrypt devem validar o controle do nome de domínio configurado com solicitações HTTP de entrada.
Você também pode usar o utilitário de linha de comando ghe-ssl-acme
na sua instância do GitHub Enterprise Server para gerar automaticamente um certificado Let's Encrypt. Para obter mais informações, consulte "Utilitários de linha de comando".
Configurar o TLS usando Let's Encrypt
To use Let's Encrypt automation, your appliance must be configured with a hostname that is publicly accessible over HTTP. The appliance must also be allowed to make outbound HTTPS connections.
-
In the upper-right corner of any page, click .
-
In the left sidebar, click Console de gerenciamento.
-
In the left sidebar, click Privacy.
-
Select TLS only (recommended).
-
Selecione Enable automation of TLS certificate management using Let's Encrypt (Habilitar a automação do gerenciamento de certificados TLS com Let's Encrypt).
-
Under the left sidebar, click Save settings.
-
In the left sidebar, click Privacy.
-
Clique em Request TLS certificate (Solicitar certificado TSL).
-
Clique em Save configuration (Salvar configuração).