---
title: "Automatisierung des Zertifikats-Reissues"
url: "https://help.internetx.com/de/api/processes-automatisierung-des-zertifikats-reissues/"
lang: "de"
section: "API-Referenz — API-Prozesse"
breadcrumb: "Automatisierung von Zertifikats-Prozessen"
updated: "2023-09-12"
---

# Automatisierung des Zertifikats-Reissues

Anleitung zur vollständigen Automatisierung des Reissue-Prozesses für Zertifikate. Beim Reissue werden Zertifikate mit neuem CSR Key neu ausgestellt. Als Beispiel wird hier das Produkt QuickSSLPremium verwendet und als Authentifizierungsmethode DNS.

## Grundlagen der JSON-und XML-API

Alle wichtigen Informationen für die Nutzung der JSON- und XML-API findest du bei den [API-Grundlagen,](/de/api/core-allgemeine-api-grundlagen/)  den [XML](/de/api/core-xml/)\- und [JSON](/de/api/core-json/)\-Grundlagen.

Die spezifischen [SSL-Objekte](/de/api/core-objekte-fuer-ssl/) sind hier dokumentiert, die [SSL-Auftragstypen](/de/api/core-ssl-auftragstypen/) hier.

## Prozessübersicht

### Ablaufdiagramm

![Ablaufdiagramm](/images/api/963d8bac1c27.png)

### Auftragstypen, Codes und Routen

|  |  |  |
| --- | --- | --- |
| [CertificatePrepareOrder](/de/api/core-certificate-prepare-order/) | 400110 | POST /certificate/\_prepareOrder |
| [CertificateReissue](/de/api/core-certificate-reissue/) | 400102 | PUT /certificate/{id} |
| PollInfo | 0905 | GET /poll |
| PollConfirm | 0906 | PUT /poll/$id |
| [CertificateInfo](/de/api/core-certificate-info/) | 400104 | GET /certificate/$id |

### DNS-Validierung

Die DNS-Validierung, also die Validierung durch Zonen-Eintrag, wird von vielen domain-validierten Zertifikaten unterstützt.  Dafür musst du für manche CAs in der zum Zertifikatsnamen gehörenden Zone einen bestimmten TXT- oder CNAME-Record hinterlegen. Dieser wird von der austellenden Zertifikats-Stelle auf Gültigkeit geprüft. Für Zonen, die von InterNetX verwaltet werden, erfolgt die Provisionierung der Zone automatisch.

## Vorbereitung

### SSLManager mit AutoDNS verbinden

Sind die zwei Systeme bereits verknüpft, kann dieser Schritt übersprungen werden

Für die automatische Provisionierung der Zone, also das automatische Anstoßen der Zonen-Aktualisierung, musst du einmalig den SSL Manager mit deinem AutoDNS-Zugang verbinden.  
Gehe im SSL Manager zu den **Benutzereinstellungen** und klicke auf den Menüpunkt **SSL Manager mit dem** **Domain-Verwalt****ungssystem** **verbinden**. Du wirst dann auf die AutoDNS Loginseite geleitet.  
Geben hier zum Herstellen der Verbindung deine AutoDNS-Zugangsdaten ein. Gebenenfalls musst du die URL zu Ihrem Deinem AutoDNS selbst eingeben.

Bei der Eingabe der ADNS URL kein Protokoll angeben, also z. B. kein "http" oder "https".  
Als Personal ADNS Kunden bitte die Personal ADNS ID (Kontext) angeben, also "personaladnsid.login.autodns.com", alle anderen die URL "login.autodns.com" verwenden.  
   
Eine Verbindung ist auf die beschriebene Weise nur mit AutoDNS X3 nicht aber mit AutoDNS Plattform möglich.  
Die Verbindung mit AutoDNS Plattform ist auf folgende Weise möglich:  
\- einen AutoDNS Account anlegen  
\- die SSL Manager Daten importieren. Nach dem Import wird der SSLManager Account deaktiviert.

## Ein QuickSSLPremium Zertifikat neu erzeugen (Reissue)

### DNS-Record erzeugen und CSR prüfen

QuickSSLPremium Zertifikate werden über TXT-Einträge verifiziert. Dafür wird in der zum Commonname (CNAME)  gehörenden Zone ein neuer TXT-Record mit bestimmten Werten hinterlegt. Der Auftragstyp _CertificatePrepareOrder_ prüft den bereitgestellten CSR-Schüssel, z.B. die richtige Bitlänge, und erzeugt die benötigten Authentifizierungsdaten.

Beispiel für den TXT-Eintrag:   
example.com. 300 IN TXT "201704071405295z34is5g0jjairsdu0v5opdw8512td8kixzvtaacu4ebrkry5q"

#### Certificate  Order Prepare - Beispiel

```
POST /certificate/prepareOrder
{
  "plain": "----BEGIN CERTIFICATE REQUEST----- .... -----END CERTIFICATE REQUEST-----",
  "product": "QUICKSSLPREMIUM",
  "businessCase": "REISSUE"
}
```

```
{
    "stid": "20180926-stid",
    "status": {
        "code": "S400110",
        "text": "CSR Key wurde erfolgreich geprüft.",
        "type": "SUCCESS"
    },
    "data": [
        {
            "plain": "-----BEGIN CERTIFICATE REQUEST----- ... -----END CERTIFICATE REQUEST-----",
            "name": "example.com",
            "keySize": 2048,
            "countryCode": "DE",
            "state": "BY",
            "city": "Regensburg",
            "organization": "Company GmbH",
            "organizationUnit": "Entwicklung",
            "product": "QUICKSSLPREMIUM",
            "authentication": [
                {
                    "method": "EMAIL",
                    "approverEmails": [
                        "admin@example.com",
                        "administrator@example.com",
                        "hostmaster@example.com",
                        "webmaster@example.com",
                        "postmaster@example.com"
                    ]
                },
                {
                    "method": "DNS",
                    "dns": "example.com.\t\t300\tIN\tTXT\t\"201704071405295z34is5g0jjairsdu0v5opdw8512td8kixzvtaacu4ebrkry5q\""
                },
                {
                    "method": "FILE"
                }
            ],
            "algorithm": "RSA",
            "signatureHashAlgorithm": "SHA256"
        }
    ]
}
```

```
<request>
    <auth>
        <user>USER</user>
        <context>CONTEXT</context>
        <password>PASSWORD</password>
    </auth>
    <task>
        <code>400110</code>
        <certificate_request>
            <plain><![CDATA[----BEGIN CERTIFICATE REQUEST----- .... -----END CERTIFICATE REQUEST-----]]></plain>
            <product>QUICKSSLPREMIUM</product>
            <business_case>REISSUE</business_case>
        </certificate_request>
    </task>
</request>
```

```
<response>
    <result>
        <data>
            <certificate_request>
                <plain><![CDATA[-----BEGIN CERTIFICATE REQUEST----- ... -----END CERTIFICATE REQUEST-----]]></plain>
                <name><![CDATA[example.com]]></name>
                <key_size>2048</key_size>
                <country_code>DE</country_code>
                <state><![CDATA[Bayern]]></state>
                <city><![CDATA[Regensburg]]></city>
                <organization><![CDATA[Company GmbH]]></organization>
                <organization_unit>Entwicklung</organization_unit>
                <email>email@example.com</email>
                <product>QUICKSSLPREMIUM</product>
                <authentication>
                    <method>DNS</method>
                    <dns>example.com. 300 IN TXT "201704071405295z34is5g0jjairsdu0v5opdw8512td8kixzvtaacu4ebrkry5q"</dns>
     				<provisioning>1</provisioning>
                </authentication>
                <authentication>
                    <method>FILE</method>
                    <file_name><![CDATA[http://example.com/.well-known/pki-validation/fileauth.txt]]></file_name>
                    <file_content><![CDATA[201704071405295z34is5g0jjairsdu0v5opdw8512td8kixzvtaacu4ebrkry5q]]></file_content>
                </authentication>
                <algorithm>RSA</algorithm>
                <signature_hash_algorithm>SHA256</signature_hash_algorithm>
            </certificate_request>
        </data>
        <status>
            <code>S400110</code>
            <text>CSR Key wurde erfolgreich geprüft.</text>
            <type>success</type>
        </status>
    </result>
 <stid>20181211-app1-7704</stid>
</response>
```

### Zertifikat neu ausstellen

Der Auftragstyp _CertificateReissue_ startet die Neuausstellung des Zertifikats.  Du musst für den Auftrag die gleichen Daten setzen wie bei einen _CertificateCreate_.

```
PUT /certificate/$id
{
  "adminContact": {
    "id": 100
  },
  "technicalContact": {
    "id": 100
  },
  "name": "example.com",
  "lifetime": {
    "unit": "MONTH",
    "period": 12
  },
  "software": "APACHESSL",
  "csr": "-----BEGIN CERTIFICATE REQUEST----- ... -----END CERTIFICATE REQUEST-----",
  "product": "QUICKSSLPREMIUM",
  "authentication": {
    "method": "DNS",
    "dns": "example.com.\t\t300\tIN\tTXT\t\"201704071405295z34is5g0jjairsdu0v5opdw8512td8kixzvtaacu4ebrkry5q\"",
    "provisioning": true
  }
}
```

```
{
    "stid": "20180926-stid",
    "status": {
        "code": "N400101",
        "text": "Zertifikatsauftrag wurde erfolgreich gestartet. ",
        "type": "NOTIFY"
    },
    "object": {
        "type": "Certificate",
        "value": "example.com"
    },
    "data": [
        {
            "id": 123456
        }
    ]
}
```

```
<request>
    <auth>
        <user>USER</user>
        <password>PASSWORD</password>
        <context>CONTEXT</context>
    </auth>
    <task>
        <code>400102</code>
        <certificate>
            <id>100</id>
            <technical>
                <id>100</id>
            </technical>
            <admin>
                <id>100</id>
            </admin> 
            <name>example.com</name>
            <product>QUICKSSLPREMIUM</product>
            <authentication>
                <method>DNS</method>
                <dns>example.com. 300 IN TXT "201808261405295z34is5g0jjairsdu0v5opdw8512td8kixzvtaacu4ebrkry5q"</dns> 
                <provisioning>1</provisioning>
            </authentication>
            <lifetime>12</lifetime>
            <software>APACHESSL</software> <!-- APACHESSL / IIS5 -->
            <csr><![CDATA[---------BEGIN CERTIFICATE REQUEST----- .... -----END CERTIFICATE REQUEST-----]]></csr> <!-- Der CSR KEY -->
        </certificate>
    </task>
</request>
```

```
<response>
  <result>
    <data>
      <certificate_job>
        <job>
          <id>123456</id><!-- Die ID des angelegten Jobs -->
          <status>RUNNING</status><!-- Der Status des angelegten Jobs -->
        </job>
      </certificate_job>
    </data>
    <status>
      <code>N400101</code><!-- Beschreibt den Status des Tasks -->
      <text>Zertifikatsauftrag wurde erfolgreich gestartet. </text>
      <type>notify</type><!-- Beschreibt den Status des Tasks -->
      <object>
        <type>certificate</type>
        <value>example.com</value><!-- Der Name des Zertifikats -->
      </object>
    </status>
  </result>
 <stid>20180826-app1-7780</stid>
</response>
```

### Benachrichtigungen erhalten

 Ist der Auftrag abgearbeitet, wird eine Auftragsbenachrichtigung generiert, mit Informationen über den Auftrag. War der Auftrag erfolgreich, so erhälst du unter anderem die ID des bestellten Zertifikates.  
Die Systembenachrichtigung kann mit den Methoden [Polling und Push abgerufen bzw. zugesendet](/de/api/core-benachrichtigungen-erhalten-polling-und-push/) werden.

### Zertifikats-Daten ermitteln

Der Auftragstyp _CertificateInfo_ ermittelt alle Zertifikats-Daten. Die Daten können mit Hilfe der ID aus dem Schritt Auftrags-Benachrichtigungen abfragen und bestätigen abgefragt werden.

#### CertificatInfo - Beispiel

```
GET /certificate/$id
```

```
{
    "stid": "20181211-stid",
    "status": {
        "code": "S400104",
        "text": "Zertifikatsdaten wurden erfolgreich ermittelt.",
        "type": "SUCCESS"
    },
    "object": {
        "type": "Certificate",
        "value": "example.com"
    },
    "data": [
        {
            "created": "2018-12-11T00:00:00.000+0100",
            "updated": "2018-12-11T11:38:08.000+0100",
            "id": 13258,
            "owner": {
                "user": "user",
                "context": 9
            },
            "orderId": "2695961",
            "adminContact": {
                "id": 100
				...
            },
            "technicalContact": {
                "id": 100
				...
            },
            "name": "example.com",
            "lifetime": {
                "unit": "MONTH",
                "period": 12
            },
            "software": "APACHESSL",
            "csr": "-----BEGIN CERTIFICATE REQUEST----- ... -----END CERTIFICATE REQUEST-----",
            "server": "-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----\n",
            "serialNumber": "750C3006B23B90D0F396A3D153EB4C8",
            "product": "QUICKSSLPREMIUM",
            "expire": "2019-09-26T12:00:00.000+0200",
            "authentication": {
                "method": "DNS",
                "dns": "example.com.\t\t300\tIN\tTXT\t\"2018121108362142n4sbul8rv8ttv7zkhjgzvyim8n1kpa9lys0uqdszxzs0pa0l\"",
                "provisioning": true
            },
            "certificateTransparencyPrivacy": "PUBLIC",
            "domain": "example.com"
        }
    ]
}
```

```
<request>
    <auth>
        <user>USER</user>
        <context>CONTEXT</context>
        <password>PASSWORD</password>
    </auth>
    <task>
        <code>400104</code>
        <certificate>
            <id>100</id>
        </certificate>
    </task>
</request>
```

```
<response>
  <result>
    <data>
      <certificate>
        <order_id>1003396954</order_id>
        <technical>
          <first>Michael</first>
            <last>Mustermann</last>
            <phone>+49-941-1234560</phone>
            <email>michael.mustermann@example.com</email>
            <title>Admin</title>
            <organization>Beispiel GmbH</organization>
            <address>Maximilianstrasse 36000</address>
            <postal_code>93047</postal_code>
            <city>Regensburg</city>
            <country>DE</country>
            <state>Bayern</state>
          <owner>
            <user>USER</user>
            <context>CONTEXT</context>
          </owner>
          <updater>
            <user>USER</user>
            <context>CONTEXT</context>
          </updater>
          <id>20398</id>
          <created>2017-01-01 10:35:22</created>
          <updated>2017-01-01 01:05:07</updated>
        </technical>
        <admin>
          <first>Michael</first>
            <last>Mustermann</last>
            <phone>+49-941-1234560</phone>
            <email>michael.mustermann@example.com</email>
            <title>Admin</title>
            <organization>Beispiel GmbH</organization>
            <address>Maximilianstrasse 36000</address>
            <postal_code>93047</postal_code>
            <city>Regensburg</city>
            <country>DE</country>
            <state>Bayern</state>
          <owner>
            <user>USER</user>
            <context>CONTEXT</context>
          </owner>
          <updater>
            <user>USER</user>
            <context>CONTEXT</context>
          </updater>
          <id>20398</id>
          <created>2017-01-01 10:35:22</created>
          <updated>2017-01-01 01:05:07</updated>
        </admin> 
        <name>example.com</name>
        <lifetime>12</lifetime>
        <software>APACHE2</software>
        <csr><![CDATA[----BEGIN CERTIFICATE REQUEST----- .... -----END CERTIFICATE REQUEST-----]]></csr>
        <server><![CDATA[----BEGIN CERTIFICATE ----- .... -----END CERTIFICATE-----]]></server>
        <serial_number>SERIALNUMBER</serial_number>
        <product>QUICKSSLPREMIUM</product>
        <sha>SHA2</sha>
        <expire>2030-01-01 23:59:59</expire>
        <extension />
        <certification_authority>
          <ca_type>ICA1</ca_type>
          <ca_cert><![CDATA[----BEGIN CERTIFICATE ----- .... -----END CERTIFICATE-----]]></ca_cert>
        </certification_authority>
        <authentication>
          <method>DNS</method>
          <dns>example.com. 300 IN TXT "201812111405295z34is5g0jjairsdu0v5opdw8512td8kixzvtaacu4ebrkry5q"</dns>
        </authentication>
        <owner>
          <user>USER</user>
          <context>CONTEXT</context>
        </owner>
        <updater>
          <user>USER</user>
          <context>CONTEXT</context>
        </updater>
        <id>100</id>
        <created>2017-01-01 00:00:00</created>
        <updated>2017-01-01 14:30:36</updated>
      </certificate>
    </data>
    <status>
      <code>S400104</code>
      <text>Zertifikatsdaten wurden erfolgreich ermittelt.</text>
      <type>success</type>
      <object>
        <type>certificate</type>
        <value>example.com</value>
      </object>
    </status>
  </result>
 <stid>20181211-app1-8901</stid>
</response>
```
