Skip to main content

Enterprise Server 3.20 ist derzeit als Release Candidate verfügbar.

Konfigurieren von TLS- und SSH-Verschlüsselungen

Sie können die Verschlüsselungssammlungen und kryptografischen Algorithmen konfigurieren, die GitHub Enterprise Server für TLS- und SSH-Verbindungen verwendet, um bestimmte Compliance- oder Sicherheitsanforderungen zu erfüllen.

Wer kann dieses Feature verwenden?

Site administrators

Informationen zur Verschlüsselungssuite und zur Algorithmuskonfiguration

GitHub Enterprise Server ermöglicht es Ihnen, die zu verwendenden Cipher Suites und kryptografischen Algorithmen zu konfigurieren für:

  •         **TLS-Verbindungen** in Ports 443 (HTTPS-Webschnittstelle) und 8443 (HTTPS-Verwaltungskonsole)
    
  •         **SSH-Verbindungen** auf Port 22 (Git-Vorgänge über SSH) und Port 122 (Zugriff auf administrative Shell)
    

Die standardmäßigen sicheren Chiffresuiten basieren auf Branchenstandardempfehlungen zur TLS-Härtung und modernen Sicherheitsbest Practices. Die meisten Organisationen sollten diese Standardwerte verwenden, es sei denn, bestimmte Compliance- oder Sicherheitsanforderungen diktieren andernfalls.

Organisationen müssen möglicherweise Verschlüsselungssammlungen und kryptografische Algorithmen anpassen, um bestimmte Sicherheitsrichtlinien, Branchenstandards oder behördliche Anforderungen zu erfüllen.

Ab GitHub Enterprise Server} 3.19 sind TLS-Verschlüsselungen konfigurierbar, und das Webgateway verwendet sicherere Verschlüsselungsstandardwerte. Um die Abwärtskompatibilität mit vorhandenen Instanzen aufrechtzuerhalten, verwenden neu bereitgestellte Instanzen diese neuen Standardwerte.

Warnung

Das Konfigurieren übermäßig restriktiver Verschlüsselungssammlungen kann verhindern, dass Clients eine Verbindung mit Ihrer Instanz herstellen. Testen Sie immer Zuerst Änderungen in einer Nicht-Produktionsumgebung, stellen Sie sicher, dass mindestens eine Verschlüsselungssuite mit Ihren Clients kompatibel ist, und überprüfen Sie die Konnektivität nach dem Anwenden von Konfigurationsänderungen.

Hinweis

Verwenden Sie beim Konfigurieren von TLS-Verschlüsselungssammlungen kommagetrennte Werte in Ihren Konfigurationsbefehlen. GitHub Enterprise Server konvertiert automatisch Kommas in Doppelpunkte für die HAProxy-Konfiguration. Verschlüsselungssammlungen werden in der angegebenen Reihenfolge ausgewertet, daher sollten Sie zuerst Ihre bevorzugten Verschlüsselungen auflisten.

Konfigurieren von TLS-Verschlüsselungssammlungen

Sie können die Verschlüsselungssammlungen konfigurieren, die für TLS 1.2- und TLS 1.3-Verbindungen verwendet werden.

Verfügbare TLS-Verschlüsselungssuiten auflisten

  1. Stellen Sie eine SSH-Verbindung mit Ihrer GitHub Enterprise Server-Zielinstanz her. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Um die standardmäßigen sicheren Verschlüsselungssammlungen für TLS 1.2 anzuzeigen, führen Sie den folgenden Befehl aus.

    Shell
    ghe-crypto list tlsv12-ciphersuites
    
  3. Um die standardmäßigen sicheren Verschlüsselungssammlungen für TLS 1.3 anzuzeigen, führen Sie den folgenden Befehl aus.

    Shell
    ghe-crypto list tlsv13-ciphersuites
    

Anzeigen der aktuellen Verschlüsselungskonfiguration

  1. Stellen Sie eine SSH-Verbindung mit Ihrer GitHub Enterprise Server-Zielinstanz her. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Führen Sie den folgenden Befehl aus, um die konfigurierten TLS 1.2-Verschlüsselungssammlungen anzuzeigen.

    Shell
    ghe-config github-ssl.tlsv12-ciphersuites
    
  3. Führen Sie den folgenden Befehl aus, um die konfigurierten TLS 1.3-Verschlüsselungssammlungen anzuzeigen.

    Shell
    ghe-config github-ssl.tlsv13-ciphersuites
    

    Wenn diese Befehle leere Werte zurückgeben, verwendet die Instanz die sicheren Standardwerte.

Festlegen von TLS 1.2-Verschlüsselungssammlungen

  1. Stellen Sie eine SSH-Verbindung mit Ihrer GitHub Enterprise Server-Zielinstanz her. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Überprüfen Sie die gewünschten TLS 1.2-Verschlüsselungssammlungen mithilfe des ghe-crypto check Befehls. Ersetzen Sie CIPHER1,CIPHER2,CIPHER3 durch eine kommagetrennte Liste der Verschlüsselungssammlungen.

    Shell
    ghe-crypto check tlsv12-ciphersuites CIPHER1,CIPHER2,CIPHER3
    

    Beispiel:

    ghe-crypto check tlsv12-ciphersuites ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384
    
  3. Wenn die Verschlüsselungszeichenfolge gültig ist, legen Sie die TLS 1.2-Verschlüsselungssammlungen fest. Ersetzen Sie CIPHER1,CIPHER2,CIPHER3 durch Ihre kommagetrennte Liste.

    Shell
    ghe-config github-ssl.tlsv12-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'
    

    Beispiel:

    ghe-config github-ssl.tlsv12-ciphersuites 'ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384'
    
  4. Überprüfen Sie die Konfiguration.

    Shell
    ghe-config-check
    
  5. Führe den folgenden Befehl aus, um die Konfiguration anzuwenden.

    Hinweis

    Während einer Konfigurationsausführung können die Dienste auf Ihre GitHub Enterprise Server-Instance neu gestartet werden, was zu kurzen Ausfallzeiten für Benutzer führen kann.

    Shell
    ghe-config-apply
    
  6. Warten Sie auf den Abschluss der Konfigurationsausführung.

  7. Wenn du eine Benutzernachricht oder den Wartungsmodus konfiguriert hast, entferne die Nachricht und deaktiviere den Wartungsmodus.

Festlegen von TLS 1.3-Verschlüsselungssammlungen

  1. Stellen Sie eine SSH-Verbindung mit Ihrer GitHub Enterprise Server-Zielinstanz her. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Überprüfen Sie die gewünschten TLS 1.3-Verschlüsselungssammlungen mithilfe des ghe-crypto check Befehls. Ersetzen Sie CIPHER1,CIPHER2,CIPHER3 durch eine kommagetrennte Liste der Verschlüsselungssammlungen.

    Shell
    ghe-crypto check tlsv13-ciphersuites CIPHER1,CIPHER2,CIPHER3
    

    Beispiel:

    ghe-crypto check tlsv13-ciphersuites TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256
    
  3. Wenn die Verschlüsselungszeichenfolge gültig ist, legen Sie die TLS 1.3-Verschlüsselungssammlungen fest. Ersetzen Sie CIPHER1,CIPHER2,CIPHER3 durch Ihre kommagetrennte Liste.

    Shell
    ghe-config github-ssl.tlsv13-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'
    

    Beispiel:

    ghe-config github-ssl.tlsv13-ciphersuites 'TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256'
    
  4. Überprüfen Sie die Konfiguration.

    Shell
    ghe-config-check
    
  5. Führe den folgenden Befehl aus, um die Konfiguration anzuwenden.

    Hinweis

    Während einer Konfigurationsausführung können die Dienste auf Ihre GitHub Enterprise Server-Instance neu gestartet werden, was zu kurzen Ausfallzeiten für Benutzer führen kann.

    Shell
    ghe-config-apply
    
  6. Warten Sie auf den Abschluss der Konfigurationsausführung.

  7. Wenn du eine Benutzernachricht oder den Wartungsmodus konfiguriert hast, entferne die Nachricht und deaktiviere den Wartungsmodus.

Konfigurieren von kryptografischen SSH-Algorithmen

Sie können die kryptografischen Algorithmen konfigurieren, die für SSH-Verbindungen auf Port 22 (Git-Vorgänge) und Port 122 (Administrativer Shellzugriff) verwendet werden.

Auflisten verfügbarer SSH-Algorithmen

  1. Stellen Sie eine SSH-Verbindung mit Ihrer GitHub Enterprise Server-Zielinstanz her. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Führen Sie den folgenden Befehl aus, um die standardmäßigen sicheren SSH-Verschlüsselungen anzuzeigen.

    Shell
    ghe-crypto list ssh-ciphers
    
  3. Führen Sie den folgenden Befehl aus, um die standardmäßigen sicheren SSH-MAC-Algorithmen anzuzeigen.

    Shell
    ghe-crypto list ssh-mac-algorithms
    
  4. Führen Sie den folgenden Befehl aus, um die Standardalgorithmen für den sicheren SSH-Schlüsselaustausch anzuzeigen.

    Shell
    ghe-crypto list ssh-kex-algorithms
    
  5. Führen Sie den folgenden Befehl aus, um die standardmäßigen sicheren SSH-Signaturtypen anzuzeigen.

    Shell
    ghe-crypto list ssh-signature-types
    

Anzeigen der aktuellen SSH-Konfiguration

  1. Stellen Sie eine SSH-Verbindung mit Ihrer GitHub Enterprise Server-Zielinstanz her. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Führen Sie den folgenden Befehl aus, um die konfigurierten SSH-Verschlüsselungen anzuzeigen.

    Shell
    ghe-config github-ssl.ssh-ciphers
    
  3. Führen Sie den folgenden Befehl aus, um die konfigurierten SSH-MAC-Algorithmen anzuzeigen.

    Shell
    ghe-config github-ssl.ssh-mac-algorithms
    
  4. Führen Sie den folgenden Befehl aus, um die konfigurierten SSH-Schlüsselaustauschalgorithmen anzuzeigen.

    Shell
    ghe-config github-ssl.ssh-kex-algorithms
    
  5. Führen Sie den folgenden Befehl aus, um die konfigurierten SSH-Signaturtypen anzuzeigen.

    Shell
    ghe-config github-ssl.ssh-signature-types
    

    Wenn diese Befehle leere Werte zurückgeben, verwendet die Instanz die sicheren Standardwerte.

Festlegen von SSH-Verschlüsselungen

  1. Stellen Sie eine SSH-Verbindung mit Ihrer GitHub Enterprise Server-Zielinstanz her. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Überprüfen Sie die gewünschten SSH-Verschlüsselungen mithilfe des ghe-crypto check Befehls. Ersetzen Sie durch cipher1,cipher2,cipher3 eine durch Trennzeichen getrennte Liste von Chiffre.

    Shell
    ghe-crypto check ssh-ciphers cipher1,cipher2,cipher3
    

    Beispiel:

    ghe-crypto check ssh-ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
    
  3. Wenn die Verschlüsselungszeichenfolge gültig ist, legen Sie die SSH-Chiffre fest. Ersetzen Sie cipher1,cipher2,cipher3 durch Ihre kommagetrennte Liste.

    Shell
    ghe-config github-ssl.ssh-ciphers 'cipher1,cipher2,cipher3'
    

    Beispiel:

    ghe-config github-ssl.ssh-ciphers 'chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com'
    
  4. Überprüfen Sie die Konfiguration.

    Shell
    ghe-config-check
    
  5. Führe den folgenden Befehl aus, um die Konfiguration anzuwenden.

    Hinweis

    Während einer Konfigurationsausführung können die Dienste auf Ihre GitHub Enterprise Server-Instance neu gestartet werden, was zu kurzen Ausfallzeiten für Benutzer führen kann.

    Shell
    ghe-config-apply
    
  6. Warten Sie auf den Abschluss der Konfigurationsausführung.

  7. Wenn du eine Benutzernachricht oder den Wartungsmodus konfiguriert hast, entferne die Nachricht und deaktiviere den Wartungsmodus.

Festlegen von SSH-MAC-Algorithmen

  1. Stellen Sie eine SSH-Verbindung mit Ihrer GitHub Enterprise Server-Zielinstanz her. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Überprüfen Sie ihre gewünschten SSH-MAC-Algorithmen mithilfe des ghe-crypto check Befehls. Ersetzen Sie durch mac1,mac2,mac3 eine durch Trennzeichen getrennte Liste von MAC-Algorithmen.

    Shell
    ghe-crypto check ssh-mac-algorithms mac1,mac2,mac3
    

    Beispiel:

    ghe-crypto check ssh-mac-algorithms hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
    
  3. Wenn die MAC-Algorithmuszeichenfolge gültig ist, legen Sie die SSH-MAC-Algorithmen fest. Ersetzen Sie mac1,mac2,mac3 durch Ihre kommagetrennte Liste.

    Shell
    ghe-config github-ssl.ssh-mac-algorithms 'mac1,mac2,mac3'
    

    Beispiel:

    ghe-config github-ssl.ssh-mac-algorithms 'hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com'
    
  4. Überprüfen Sie die Konfiguration.

    Shell
    ghe-config-check
    
  5. Führe den folgenden Befehl aus, um die Konfiguration anzuwenden.

    Hinweis

    Während einer Konfigurationsausführung können die Dienste auf Ihre GitHub Enterprise Server-Instance neu gestartet werden, was zu kurzen Ausfallzeiten für Benutzer führen kann.

    Shell
    ghe-config-apply
    
  6. Warten Sie auf den Abschluss der Konfigurationsausführung.

  7. Wenn du eine Benutzernachricht oder den Wartungsmodus konfiguriert hast, entferne die Nachricht und deaktiviere den Wartungsmodus.

Festlegen von SSH-Schlüsselaustauschalgorithmen

  1. Stellen Sie eine SSH-Verbindung mit Ihrer GitHub Enterprise Server-Zielinstanz her. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Überprüfen Sie die gewünschten SSH-Schlüsselaustauschalgorithmen mithilfe des ghe-crypto check Befehls. Ersetzen Sie durch kex1,kex2,kex3 eine durch Trennzeichen getrennte Liste der Schlüsselaustauschalgorithmen.

    Shell
    ghe-crypto check ssh-kex-algorithms kex1,kex2,kex3
    

    Beispiel:

    ghe-crypto check ssh-kex-algorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp521
    
  3. Wenn die Zeichenfolge des Schlüsselaustauschalgorithmus gültig ist, legen Sie die SSH-Schlüsselaustauschalgorithmen fest. Ersetzen Sie kex1,kex2,kex3 durch Ihre kommagetrennte Liste.

    Shell
    ghe-config github-ssl.ssh-kex-algorithms 'kex1,kex2,kex3'
    

    Beispiel:

    ghe-config github-ssl.ssh-kex-algorithms 'curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp521'
    
  4. Überprüfen Sie die Konfiguration.

    Shell
    ghe-config-check
    
  5. Führe den folgenden Befehl aus, um die Konfiguration anzuwenden.

    Hinweis

    Während einer Konfigurationsausführung können die Dienste auf Ihre GitHub Enterprise Server-Instance neu gestartet werden, was zu kurzen Ausfallzeiten für Benutzer führen kann.

    Shell
    ghe-config-apply
    
  6. Warten Sie auf den Abschluss der Konfigurationsausführung.

  7. Wenn du eine Benutzernachricht oder den Wartungsmodus konfiguriert hast, entferne die Nachricht und deaktiviere den Wartungsmodus.

Festlegen von SSH-Signaturtypen

  1. Stellen Sie eine SSH-Verbindung mit Ihrer GitHub Enterprise Server-Zielinstanz her. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Überprüfen Sie die gewünschten SSH-Signaturtypen mithilfe des ghe-crypto check Befehls. Ersetzen Sie sig1,sig2,sig3 durch eine kommagetrennte Liste von Signaturtypen.

    Shell
    ghe-crypto check ssh-signature-types sig1,sig2,sig3
    

    Beispiel:

    ghe-crypto check ssh-signature-types ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384
    
  3. Wenn die Signaturtypzeichenfolge gültig ist, legen Sie die SSH-Signaturtypen fest. Ersetzen Sie sig1,sig2,sig3 durch Ihre kommagetrennte Liste.

    Shell
    ghe-config github-ssl.ssh-signature-types 'sig1,sig2,sig3'
    

    Beispiel:

    ghe-config github-ssl.ssh-signature-types 'ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384'
    
  4. Überprüfen Sie die Konfiguration.

    Shell
    ghe-config-check
    
  5. Führe den folgenden Befehl aus, um die Konfiguration anzuwenden.

    Hinweis

    Während einer Konfigurationsausführung können die Dienste auf Ihre GitHub Enterprise Server-Instance neu gestartet werden, was zu kurzen Ausfallzeiten für Benutzer führen kann.

    Shell
    ghe-config-apply
    
  6. Warten Sie auf den Abschluss der Konfigurationsausführung.

  7. Wenn du eine Benutzernachricht oder den Wartungsmodus konfiguriert hast, entferne die Nachricht und deaktiviere den Wartungsmodus.

Problembehandlung bei der Verschlüsselungskonfiguration

Wenn Clients nach dem Ändern der Verschlüsselungskonfiguration keine Verbindung mit Ihre GitHub Enterprise Server-Instance herstellen können, können Sie das Problem beheben.

  1. Überprüfen Sie, ob Ihre Clients die konfigurierten TLS- oder SSH-Protokollversionen unterstützen.
  2. Stellen Sie sicher, dass mindestens eine konfigurierte Verschlüsselungssuite mit Ihren Clients kompatibel ist.
  3. Überprüfen Sie die Instanzprotokolle auf TLS-Handshake-Fehler oder SSH-Verbindungsfehler. Weitere Informationen zum Zugriff auf Protokolle finden Sie unter Informationen zu Systemprotokollen.
  4. Stellen Sie die Standardeinstellungen vorübergehend wieder her, um sicherzustellen, dass das Problem chiffrebezogen ist. Weitere Informationen finden Sie unter Wiederherstellen von Standardchiffre-Suite- und Algorithmuseinstellungen.
  5. Wenn das Problem nach dem Wiederherstellen der Standardeinstellungen weiterhin besteht, wenden Sie sich an GitHub Enterprise-Support.

Wiederherstellen von Standardchiffre-Suite- und Algorithmuseinstellungen

Um die standardmäßigen sicheren Verschlüsselungssammlungen oder -algorithmen wiederherzustellen, entschlüsseln Sie den Konfigurationswert.

  1. Stellen Sie eine SSH-Verbindung mit Ihrer GitHub Enterprise Server-Zielinstanz her. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Die Konfigurationseinstellung wird aufgehoben. Ersetzen Sie den SETTING Namen der Einstellung, die Sie auf Standardeinstellungen wiederherstellen möchten.

    Shell
    ghe-config --unset github-ssl.SETTING
    

    Beispiel: Zum Wiederherstellen der standardmäßigen TLS 1.2-Verschlüsselungssammlungen:

    ghe-config --unset github-ssl.tlsv12-ciphersuites
    
  3. Führe den folgenden Befehl aus, um die Konfiguration anzuwenden.

    Hinweis

    Während einer Konfigurationsausführung können die Dienste auf Ihre GitHub Enterprise Server-Instance neu gestartet werden, was zu kurzen Ausfallzeiten für Benutzer führen kann.

    Shell
    ghe-config-apply
    
  4. Warten Sie auf den Abschluss der Konfigurationsausführung.

  5. Wenn du eine Benutzernachricht oder den Wartungsmodus konfiguriert hast, entferne die Nachricht und deaktiviere den Wartungsmodus.