

 **Unterstützung für die Verbesserung dieser Seite beitragen** 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link **Diese Seite bearbeiten auf**, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Sicherung von Workloads mit Kubernetes-Zertifikaten
<a name="cert-signing"></a>

Die Kubernetes-Zertifikats-API automatisiert die Bereitstellung von [X.509](https://www.itu.int/rec/T-REC-X.509)-Anmeldeinformationen. Die API verfügt über eine Befehlszeilenschnittstelle, über die Kubernetes-API-Clients [X.509-Zertifikate](https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster/) von einer Zertifizierungsstelle (CA) anfordern und abrufen kann. Sie können die `CertificateSigningRequest` (CSR)-Ressource verwenden, um anzufordern, dass ein benannter Unterzeichner das Zertifikat signiert. Ihre Anträge werden entweder genehmigt oder abgelehnt, bevor sie signiert werden. Kubernetes unterstützt sowohl integrierte Unterzeichner als auch benutzerdefinierte Unterzeichner mit klar definierten Verhaltensweisen. Auf diese Weise können Kunden vorhersehen, was mit ihren CSRs passiert. Weitere Informationen zur Zertifikatsignatur finden Sie unter [Signieren von Anforderungen](https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/).

Einer der integrierten Unterzeichner ist `kubernetes.io/legacy-unknown`. Die `v1beta1`-API der CSR-Ressource berücksichtigte diesen Unterzeichnertyp „legacy-unknown“. Die stabile `v1`-API von CSR lässt jedoch nicht zu, dass `signerName` auf `kubernetes.io/legacy-unknown` festgelegt wird.

Wenn Sie Amazon EKS CA zum Generieren von Zertifikaten verwenden möchten, müssen Sie einen benutzerdefinierten Unterzeichner verwenden. Um die CSR-`v1`-API-Version zu verwenden und ein neues Zertifikat zu generieren, müssen Sie alle vorhandenen Manifeste und API-Clients migrieren. Bestehende Zertifikate, die mit der vorhandenen `v1beta1`-API erstellt wurden, sind gültig und funktionieren, bis sie ablaufen. Diese umfasst die folgenden Funktionen:
+ Vertrauensverteilung: keine. Es gibt kein Standardvertrauen oder eine Standardverteilung für diesen Unterzeichner in einem Kubernetes-Cluster.
+ Zulässige Themen: beliebig
+ Zulässige x509-Erweiterungen: Berücksichtigt SubjectAltName und Schlüsselnutzungserweiterungen und verwirft andere Erweiterungen
+ Zulässige Schlüsselnutzung: Darf keine anderen Nutzungen als [„Schlüsselverschlüsselung“, „digitale Signatur“, „Serverauth“] enthalten
**Anmerkung**  
Das Signieren von Clientzertifikaten wird nicht unterstützt.
+ Ablauf/Zertifikatslebensdauer: 1 Jahr (Standard und Maximum)
+ CA-Bit zulässig/unzulässig: unzulässig

## Beispiel CSR-Erstellung mit signerName
<a name="csr-example"></a>

Diese Schritte veranschaulichen, wie Sie ein Bereitstellungszertifikat für DNS-Namen `myserver.default.svc` mit `signerName: beta.eks.amazonaws.com/app-serving` erstellen. Verwenden Sie dies als Leitfaden für Ihre eigene Umgebung.

1. Führen Sie den Befehl `openssl genrsa -out myserver.key 2048` aus, um einen privaten RSA-Schlüssel zu erzeugen.

   ```
   openssl genrsa -out myserver.key 2048
   ```

1. Führen Sie den folgenden Befehl aus, um eine Zertifikatsanforderung zu erstellen.

   ```
   openssl req -new -key myserver.key -out myserver.csr -subj "/CN=myserver.default.svc"
   ```

1. Generieren Sie einen `base64`-Wert für die CSR-Variablen für die Verwendung in einem späteren Schritt.

   ```
   base_64=$(cat myserver.csr | base64 -w 0 | tr -d "
   ")
   ```

1. Führen Sie den folgenden Befehl aus, um eine Datei mit dem Namen `mycsr.yaml` zu erstellen. Im folgenden Beispiel ist `beta.eks.amazonaws.com/app-serving` der `signerName`.

   ```
   cat >mycsr.yaml <<EOF
   apiVersion: certificates.k8s.io/v1
   kind: CertificateSigningRequest
   metadata:
     name: myserver
   spec:
     request: $base_64
     signerName: beta.eks.amazonaws.com/app-serving
     usages:
       - digital signature
       - key encipherment
       - server auth
   EOF
   ```

1. Reichen Sie die CSR ein.

   ```
   kubectl apply -f mycsr.yaml
   ```

1. Genehmigen Sie das Bereitstellungszertifikat.

   ```
   kubectl certificate approve myserver
   ```

1. Stellen Sie sicher, dass das Zertifikat ausgestellt wurde.

   ```
   kubectl get csr myserver
   ```

   Eine Beispielausgabe sieht wie folgt aus.

   ```
   NAME       AGE     SIGNERNAME                           REQUESTOR          CONDITION
   myserver   3m20s   beta.eks.amazonaws.com/app-serving   kubernetes-admin   Approved,Issued
   ```

1. Exportieren Sie das ausgestellte Zertifikat.

   ```
   kubectl get csr myserver -o jsonpath='{.status.certificate}'| base64 -d > myserver.crt
   ```