> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/resources/de/other-resources/generate-a-self-signed-server-and-client-certificates-with-openssl.md).

# Selbstsignierte Server- und Client-Zertifikate mit OpenSSL generieren

Dies ist die maßgebliche Anleitung zum Erstellen sicherer Zertifikate für Server und Clients mit OpenSSL.

## Vorgehensweise

{% hint style="info" %}
Unter Windows wird empfohlen, Chocolatey zu verwenden, um OpenSSL und seine Abhängigkeiten zu installieren. Die Befehlszeile lautet einfach `choco install openssl`.
{% endhint %}

### Erstellen der Root-Zertifizierungsstelle (CA)

1. Erstellen Sie den ***Root CA Private Key*** mit der folgenden Befehlszeile: `openssl ecparam -name prime256v1 -genkey -noout -out ca.key`. Jedes Zertifikat muss einen zugehörigen privaten Schlüssel haben.
2. Erstellen Sie das ***Root CA Certificate*** (Zertifizierungsstelle) mit der folgenden Befehlszeile: `openssl req -new -x509 -sha256 -key ca.key -out ca.crt`.
3. Geben Sie die Informationen über die CA ein (das Zertifikat wird in der Datei ca.crt erstellt):

   ```
   Country Name (2 letter code) [AU]:US
   State or Province Name (full name) [Some-State]:CA
   Locality Name (eg, city) []:Toontown
   Organization Name (eg, company) [Internet Widgits Pty Ltd]:Acme inc.
   Organizational Unit Name (eg, section) []:Security
   Common Name (e.g. server FQDN or your name) []:acme.com
   Email Address []:security@acme.com
   ```
4. [Installieren Sie das Zertifikat](/resources/de/other-resources/install-root-certificates.md).

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Beachten Sie, dass das Zertifikat auf dem Server und auf allen Clients installiert werden muss, um die Legitimität der ausgestellten Zertifikate zu überprüfen. Einige Browser haben zudem Besonderheiten, die im Thema beschrieben werden.</p></div>

### Erstellen einer Zertifikatsignierungsanforderung (CSR) – Server

{% hint style="warning" %}
Diese Schritte werden üblicherweise auf jedem Server oder Gerät durchgeführt, für das Sie ein Zertifikat anfordern möchten. Installieren Sie OpenSSL, falls es nicht vorhanden ist. Die Alternative besteht darin, den privaten Schlüssel gleichzeitig mit dem Zertifikat sicher auf dem Zielserver bereitzustellen. Es wird empfohlen, diesen letzten Ansatz nur zu verwenden, wenn Sie skriptbasierte Bereitstellungen einhalten müssen, um CloudOps/DevOps-Praktiken zu folgen.
{% endhint %}

1. Erstellen Sie den ***Server Certificate Private Key*** mit der folgenden Befehlszeile: `openssl ecparam -name prime256v1 -genkey -noout -out server.key` (256-Bit-Privatschlüssel in der Datei server.key). Jedes Zertifikat muss einen zugehörigen privaten Schlüssel haben.
2. Erstellen Sie die ***Certificate Signing Request*** (CSR) des Servers mit der folgenden Befehlszeile: `openssl req -new -sha256 -key server.key -out server.csr`. Diese Anforderung wird später auf dem Root-CA-Server verarbeitet.
3. Geben Sie die Informationen über das Serverzertifikat ein (der genaue FQDN, der vom Server verwendet wird, muss angegeben werden). Beispiel:

   ```
   Country Name (2 letter code) [AU]:US
   State or Province Name (full name) [Some-State]:CA
   Locality Name (eg, city) []:Toontown
   Organization Name (eg, company) [Internet Widgits Pty Ltd]:Acme inc.
   Organizational Unit Name (eg, section) []:Security
   Common Name (e.g. server FQDN or your name) []:vault.acme.com
   Email Address []:security@acme.com
   ```
4. Geben Sie ein Passwort in die Eingabeaufforderung ein; die Verwendung eines Passwortmanagers sowie eines starken Passwortgenerators ist unerlässlich.
5. Übertragen Sie die Datei server.csr an die Root-CA.
6. Verarbeiten Sie die Anforderung, indem Sie den Anweisungen unter ***Verarbeiten einer Zertifikatsignierungsanforderung (CSR) auf der Root-Zertifizierungsstelle (CA)*** unten folgen.
7. Stellen Sie das Zertifikat bereit.

### Erstellen einer Zertifikatsignierungsanforderung (CSR) – Client

Folgen Sie dem gleichen Verfahren wie für das Serverzertifikat, jedoch müssen Sie zwei Attribute der von Ihnen eingegebenen Informationen an Ihre Bedürfnisse anpassen, nämlich den ***Common Name*** und die ***E-Mail-Adresse***.

```
Common Name (e.g. server FQDN or your name) []:John Doe
Email Address []:JohnDoe@acme.com
```

### Verarbeiten einer Zertifikatsignierungsanforderung (CSR) auf der Root-Zertifizierungsstelle (CA)

Verarbeiten Sie die CSR, indem Sie ein Zertifikat erstellen.

Erstellen Sie es mit der folgenden Befehlszeile, wobei die Datei server.csr auf dem Server erstellt wurde: `openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 1000 -sha256`

Dadurch wird das Zertifikat in der Datei server.crt erstellt. Sie müssen es auf dem Server bereitstellen, auf dem Sie die CSR erstellt haben.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/resources/de/other-resources/generate-a-self-signed-server-and-client-certificates-with-openssl.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
