TLS-Anmeldedaten abrufen: Ein Beispiel

Dieses Thema ist nur als Beispiel vorgesehen. Es wird erläutert, wie Sie ein TLS-Zertifikat von der Zertifizierungsstelle Let's Encrypt abrufen. Diese Schritte dienen hauptsächlich als Beispiel, wenn Sie keine weitere Möglichkeit haben, ein Zertifikat/Schlüssel-Paar zu erhalten, das von einer CA autorisiert wurde. Das Beispiel zeigt, wie Zertifikate mit der Zertifizierungsstelle Let's Encrypt, dem Certbot-Client und Cloud DNS der Google Cloud Platform generiert werden.

Wo Sie diese Anmeldedaten verwenden können

Sie müssen TLS-Anmeldedaten für zwei Istio-Eingangsgateways angeben, die außerhalb des Clusters verfügbar sind:

Gateway TLS-Anforderung
Gateway für eingehenden MART-Traffic Erfordert ein autorisiertes TLS-Zertifikat/Schlüsselpaar.
Gateway für eingehenden Traffic für die Laufzeit Sie können ein selbst signiertes Zertifikat/Schlüsselpaare oder autorisierte TLS-Anmeldedaten verwenden.
Siehe auch Externe Verbindungen.

Anforderungen

Sie benötigen einen Domainnamen, der über einen Domainnamenregistrator ausgestellt wird. Domainnamen können über Google Domains oder über einen beliebigen anderen Registrator angemeldet werden.

Cloud DNS konfigurieren

Um autorisierte TLS-Anmeldedaten zu erhalten, benötigen Sie einen qualifizierten Domainnamen. In den folgenden Schritten wird erläutert, wie Sie mit Google Cloud DNS einen Domainnamen abrufen und Ihre Domainserver verwalten.
  1. Öffnen Sie die Google Cloud Console und melden Sie sich mit dem Konto an, das Sie in Schritt 1: Google Cloud-Konto erstellen erstellt haben.
  2. Wählen Sie das Projekt aus, das Sie in Schritt 2: GCP-Projekt erstellen erstellt haben.
  3. Aktivieren Sie die Cloud DNS API: Siehe APIs aktivieren.
  4. Zwei statische IP-Adressen erstellen:
    • Wenn Sie mit GKE arbeiten, folgen Sie der Anleitung unter Statische externe IP-Adresse reservieren, um zwei statische IP-Adressen zu erstellen. Sie können den Adressen einen beliebigen Namen geben, z. B. apigee-hybrid-mart und apigee-hybrid-runtime. Nach Abschluss des Vorgangs haben Sie zwei IP-Adressen, die Sie im nächsten Schritt in der Clusterkonfiguration verwenden können. Zum Beispiel: 35.225.131.189 und 34.66.75.196
    • Wenn Sie mit Anthos GKE arbeiten, folgen Sie der Anleitung in der Anthos GKE-Dokumentation, um zwei statische IP-Adressen zu erstellen.
  5. Verwaltete öffentliche Zone erstellen. Eine Anleitung hierzu finden Sie unter Verwaltete öffentliche Zone erstellen.
  6. Rufen Sie die externe IP-Adresse ab, die Sie für apigee-hybrid-mart reserviert haben.
  7. Erstellen Sie einen Datensatz für den MART-Endpunkt. Geben Sie die externe IP-Adresse ein, die Sie im vorherigen Schritt abgerufen haben, und fügen Sie dem Domainnamen ein Präfix hinzu, z. B. mart. Eine Anleitung hierzu finden Sie unter Neuen Eintrag erstellen.

  8. Rufen Sie die externe IP-Adresse ab, die Sie für apigee-hybrid-runtime reserviert haben.
  9. Datensatz für den Istio-Endpunkt für eingehenden Traffic erstellen. Dies ist die Adresse für API-Aufrufe an das Hybridgateway. Geben Sie die externe IP-Adresse ein, die Sie im vorherigen Schritt erhalten haben, und fügen Sie dem Domainnamen ein Präfix hinzu, z. B. apitest. Eine Anleitung hierzu finden Sie unter Neuen Eintrag erstellen.

  10. Kopieren Sie die DNS-Eintragsdaten, wie im folgenden Beispiel gezeigt:

  11. Kehren Sie zu Ihrer Domainseite unter Google Domains zurück.
  12. Wählen Sie Ihre Domain aus.
  13. Wählen Sie DNS aus.
  14. Klicken Sie im Abschnitt Nameserver auf Bearbeiten.
  15. Geben Sie die Domain-Nameserver ein, die Sie von der Seite "Network Services Cloud DNS" kopiert haben:

Nun verwaltet Google Cloud DNS die DNS-Einträge für Ihre Domain.

Installieren Sie Certbot auf einer VM

Nachdem Sie Cloud DNS für die Verwaltung Ihrer Domainserver eingerichtet haben, installieren Sie den Certbot-Client mit dem Plug-in dns_google auf einer Cloud-VM. Mit dem Client können Sie autorisierte Zertifikate für Ihre Domain von einem Let's Encrypt-Endpunkt abrufen.

  1. Öffnen Sie die Google Cloud Console und melden Sie sich mit dem Konto an, das Sie in Schritt 1: Google Cloud-Konto erstellen erstellt haben.
  2. Wählen Sie das Projekt aus, das Sie in Schritt 2: GCP-Projekt erstellen erstellt haben.
  3. Wählen Sie IAM und Verwaltung > Dienstkonten aus.

    In der Dienstkontenansicht wird eine Liste der Dienstkonten des Projekts angezeigt.

  4. Klicken Sie oben in der Ansicht auf +Dienstkonto erstellen, um ein neues Dienstkonto zu erstellen.

    Die Ansicht Dienstkontodetails wird angezeigt.

  5. Geben Sie im Feld Name des Dienstkontos den Namen des Dienstkontos ein.

    Optional können Sie im Feld Dienstkontobeschreibung eine Beschreibung eingeben. Beschreibungen helfen Ihnen, sich genau daran zu erinnern, wofür ein bestimmtes Dienstkonto verwendet wird.

  6. Klicken Sie auf Erstellen.

    Die GCP erstellt ein neues Dienstkonto und zeigt die Ansicht Dienstkontoberechtigungen an. Verwenden Sie diese Ansicht, um Ihrem neuen Dienstkonto eine Rolle zuzuweisen.

  7. Klicken Sie auf die Drop-down-Liste Rolle auswählen.
  8. Wählen Sie die Rolle Projektinhaber aus.
  9. Klicken Sie auf Weiter.
  10. Klicken Sie auf Fertig.
  11. Wählen Sie in der GCP Console Compute Engine-Instanzen aus.
  12. Erstellen Sie eine VM-Instanz mit dem Namen certmanager.
  13. Wählen Sie im Abschnitt "Bootlaufwerk" CentOS7 und 20 GB als nichtflüchtigen SSD-Speicher aus.
  14. Legen Sie als Dienstkonto das oben erstellte fest.
  15. Installieren Sie Certbot und das Plug-in dns_google auf dem Computer und führen Sie den Certbot-Client aus:
      sudo su -
      yum -y install yum-utils
      yum install certbot -y
      yum install certbot-dns-google -y
      certbot certonly --dns-google -d *.your_domain_name,*.your_domain_name --server https://acme-v02.api.letsencrypt.org/directory
      

    Beispiel:

    sudo su -
    yum -y install yum-utils
    yum install certbot -y
    yum install certbot-dns-google -y
    certbot certonly --dns-google -d *.apigee-hybrid-docs.net,*.apigee-hybrid-docs.net --server https://acme-v02.api.letsencrypt.org/directory
    
  16. Sie finden jetzt Ihr autorisiertes Zertifikat und Ihre privaten Schlüsseldateien in diesem Verzeichnis: cd /etc/letsencrypt/live/your_domain_name/

    Beispiel:

    cd /etc/letsencrypt/live/apigee-hybrid-docs.net
    ls
      cert.pem  chain.pem  fullchain.pem  privkey.pem  README

  17. Kopieren Sie die Dateien fullchain.pem und privkey.pem auf Ihren lokalen Rechner.
  18. Aktualisieren Sie Ihre Überschreibungsdatei so, dass sie auf das Zertifikat und den privaten Schlüssel verweist. Verwenden Sie für hostAliases den DNS-Namen, den Sie zuvor erstellt haben.

    Beispiel:

    ...
    envs:
      - name: test
        serviceAccountPaths:
          synchronizer: "your_keypath/synchronizer-manager-service-account.json
          udca: "your_keypath/analytic-agent-service-account.json
    
    virtualhosts:
      - name: default
        hostAliases: ["apitest.apigee-hybrid-docs.net"]
        sslCertPath: "$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem"
        sslKeyPath: "$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem"
        routingRules:
          - env: test
    
    mart:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      sslCertPath: "$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem"
      sslKeyPath: "$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem"
      replicaCountMin: 1
      replicaCountMax: 1
      hostAlias: "mart.apigee-hybrid-docs.net"
  19. Änderungen anwenden:

    Wenn Sie die Konfiguration mart geändert haben, wenden Sie die Änderungen an:

    apigeectl apply -f your_overrides_file -c mart

    Wenn Sie die Konfiguration envs geändert haben, wenden Sie die Änderungen an:

    apigeectl apply -f your_overrides_file -c runtime
  20. Konfiguration testen

    Stellen Sie einen Proxy bereit und testen Sie ihn, wie unter Neuen API-Proxy erstellen und bereitstellen beschrieben.