Öffentlichen Schlüssel für Signaturprüfung abrufen

Verwenden Sie einen öffentlichen GPG-Schlüssel, um die Signatur signierter Images in einer CD-Pipeline (Continuous Deployment) zu überprüfen.

Sie können einen öffentlichen GPG-Schlüssel wie folgt abrufen:

  • Verwendung der Pipeline für kontinuierliche Integration (CI).
  • Sie verwenden Ihren lokalen Computer.

Öffentlichen GPG-Schlüssel mithilfe der Pipeline für kontinuierliche Integration abrufen

  1. Um einen öffentlichen Schlüssel abzurufen, fügen Sie die Umgebungsvariable print-code-signing-public-key mit dem Wert 1 in Ihrer CI-Pipeline hinzu. Nachdem Sie die CI-Pipeline ausgeführt haben, wird der öffentliche GPG-Schlüssel in der Stufe build-sign-artifact auf der Konsole ausgegeben. Anschließend können Sie den öffentlichen Schlüssel in eine Datei kopieren und im base64-Format codieren, indem Sie den folgenden Befehl ausführen:

    cat copied_key.txt | base64
    
  2. Kopieren Sie den codierten Schlüssel in Ihre CD-Pipeline.

Öffentlichen GPG-Schlüssel mithilfe des lokalen Computers abrufen

Wenn Sie den privaten GPG-Schlüssel in Ihrem Schlüsselring haben, können Sie den öffentlichen Schlüssel direkt exportieren.

  1. Überprüfen Sie, ob Ihre Maschine über einen GPG-Schlüsselring verfügt. Schlüsselringe sind Gruppierungen von Schlüsseln, die es ermöglichen, diese Gruppierungen unabhängig voneinander zu verwalten. Weitere Informationen finden Sie unter Schlüssel mithilfe von Schlüsselringen gruppieren. Führen Sie den folgenden Befehl aus:

     gpg --list-keys
    
    /home/user/.gnupg/pubring.kbx
    -------------------------------
    pub   rsa3072 2021-04-15 [SC] [expires: 2023-04-15]
          88DC11E8FDDF028F02E4184719D6C4C5990F144F
    uid           [ unknown] user name <user.name@email.com>
    sub   rsa3072 2021-04-15 [E] [expires: 2023-04-15]
    
  2. Wenn der GPG-Schlüssel auf Ihrem Computer vorhanden ist, exportieren Sie den öffentlichen GPG-Schlüssel, indem Sie den folgenden Befehl ausführen:

    gpg --armor --export  <Email Address>
    
    
        -----BEGIN PGP PUBLIC KEY BLOCK-----
        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
        ftfswLBW+es4fQ==
        =0FYC
        -----END PGP PUBLIC KEY BLOCK-----
    
  3. Nachdem Sie den öffentlichen GPG-Schlüssel exportiert haben, codieren Sie ihn im Format base64, bevor Sie ihn in das Feld code-signing-certificate kopieren.

Schlüssel speichern

Geben Sie den GPG-Schlüssel für die CD-Pipeline auf eine der folgenden Arten an:

  • Speichern Sie den Schlüssel in IBM® Key Protect for IBM Cloud®.
  • Speichern Sie den Schlüssel in IBM Cloud® Secrets Manager.
  • Speichern Sie den Schlüssel direkt in der CI-Toolchain.

Vergewissern Sie sich, dass der Schlüssel im richtigen Format kopiert wird, um einen Signierungsfehler in der CI-Pipeline zu vermeiden. Verwenden Sie pbcopy (OS X) oder clip (Windows Git bash) in den in den folgenden Abschnitten angegebenen Befehlen, um den Inhalt des Schlüssels in die Zwischenablage zu kopieren.

Schlüssel in Key Protect speichern

Sie müssen den GPG-Schlüssel doppelt base64 codieren, bevor Sie ihn in Ihrer Key Protect-Instanz speichern.

Exportieren und kopieren Sie den GPG-Schlüssel wie folgt in die Zwischenablage:

  • OS X

    gpg --armor --export <Email Address> | base64 | base64 | pbcopy
    
  • Windows

    gpg --armor --export <Email Address> | base64 -w0 | base64 -w0 | clip
    
  • Linux

    gpg --armor --export <Email Address> | base64 | base64
    
  1. Wählen Sie in Ihrer IBM Cloud-Konsole die Instanz Key Protect aus, in der der generierte GPG-Schlüssel gespeichert werden soll.

  2. Klicken Sie auf das Symbol Hinzufügen Symbol 'Hinzufügen', um der Instanz einen neuen Schlüssel hinzuzufügen.

  3. Wählen Sie die Option Eigenen Schlüssel importieren.

  4. Wählen Sie als Schlüsseltyp Standardschlüssel.

  5. Geben Sie im Feld Schlüsselname einen passenden Namen ein. Der gespeicherte GPG-Schlüssel kann später unter diesem Namen abgerufen werden.

  6. Kopieren Sie den exportierten Schlüssel im Feld Schlüsselmaterial.

    Stellen Sie sicher, dass keine zusätzliche Zeile am Ende des Schlüssels vorhanden ist, wenn Sie den Schlüssel kopieren und in das Feld Schlüsselmaterial einfügen.

  7. Erweitern Sie den Abschnitt Erweiterte Optionen und wählen Sie die Option Schlüsselring auswählen als Standardeinstellung aus.

  8. Fügen Sie den Schlüssel zu Ihrem Key Protect hinzu, indem Sie auf Schlüssel hinzufügen klicken.

    Fügt den Schlüssel zum Schlüsselschutz hinzu.
    Fügt den Schlüssel zum Schlüsselschutz hinzu.

Weitere Informationen zu Key Protectfinden Sie unter Informationen zu Key Protect.

Schlüssel in Secrets Manager speichern

Sie müssen den GPG-Schlüssel einzeln base64 codieren, bevor Sie ihn in Ihrer Secrets Manager-Instanz speichern.

  1. Exportieren Sie den GPG-Schlüssel und kopieren Sie ihn in die Zwischenablage.

    • OS X

      gpg --armor --export <Email Address> | base64 | pbcopy
      
    • Windows

      gpg --armor --export <Email Address> | base64 -w0 | clip
      
    • Linux

      gpg --armor --export <Email Address> | base64
      
  2. Wählen Sie in der Konsole IBM Cloud die Instanz Secrets Manager aus, in der Sie den GPG-Schlüssel speichern möchten, den Sie in den vorherigen Schritten erzeugt haben.

  3. Klicken Sie auf das Symbol Hinzufügen Symbol 'Hinzufügen', um der Instanz einen neuen Schlüssel hinzuzufügen.

  4. Wählen Sie die Option Anderer Geheimnistyp.

    Anderer geheimer Typ
    Anderer geheimer Typ

  5. Wählen Sie als Schlüsseltyp Standardschlüssel.

  6. Geben Sie einen passenden Namen in das Feld Name ein. Der gespeicherte GPG-Schlüssel kann später unter diesem Namen abgerufen werden.

  7. Wählen Sie die Option als Geheimwert und fügen Sie den zuvor exportierten Schlüssel in das Feld Geheimwert ein.

    Stellen Sie sicher, dass am Ende des Schlüssels keine zusätzliche Zeile vorhanden ist, wenn Sie den Schlüssel kopieren und in das Feld Wert des geheimen Schlüssels einfügen.

  8. Fügen Sie den Schlüssel zu Ihrer Key Protect-Instanz hinzu, indem Sie auf Hinzufügen klicken.

    Fügen Sie den Schlüssel
    hinzu. Fügen Sie den Schlüssel
    hinzu.

Weitere Informationen zu Secrets Manager finden Sie unter Einführung in Secrets Manager.

Privaten Schlüssel exportieren und direkt in der CI-Pipeline speichern

Verwenden Sie diese Methode nur zum Testen. Verwenden Sie keyprotect oder secrets manager für die Speicherung von Schlüsseln.

Sie müssen den GPG-Schlüssel einzeln base64 codieren, bevor Sie ihn als geschützte Pipelineeigenschaft speichern.

Speichern Sie den GPG-Schlüssel sicher wie folgt in einer Key Protect-oder Secrets Manager-Instanz:

  • OS X oder Linux

    gpg --armor --export <Email Address> | base64
    
  • Windows

    gpg --armor --export <Email Address> | base64 -w0