openssl_csr_new
openssl_error_string
OpenSSL Funktionen
PHP Manual

# openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_sign — Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat

### Beschreibung

resource openssl_csr_sign ( mixed `$csr` , mixed `$cacert` , mixed `$priv_key` , int `$days` [, array `$configargs` [, int `$serial` ]] )

openssl_csr_sign() erzeugt eine x509 Zertifikatressource aus dem Ã¼bergebenen CSR.

> Hinweis: Damit diese Funktion korrekt arbeiten kann, benötigen Sie eine installierte, gültige Konfigurationsdatei openssl.cnf. Für weitere Informationen beachten Sie bitte die Hinweise im Abschnitt Installation.

### Parameter-Liste

`csr`

  Ein zuvor mit openssl_csr_new() erzeugter CSR. Es kann sich aber auch um den Pfad zu einer PEM-kodierten CSR-Datei in der Form file://path/to/csr handeln oder einen String wie von openssl_csr_export() zurÃ¼ckgegeben.

`cacert`

  Das generierte Zertifikat wird mit `cacert` signiert. Falls Sie hier `NULL` angeben wird ein selbstsigniertes Zertifikat erstellt.

`priv_key`

  `priv_key` ist der zu `cacert` gehÃ¶rende private SchlÃ¼ssel.

`days`

  `days` Die GÃ¼ltigkeitsdauer des Zertifikats, in Tagen.

`configargs`

  Mit `configargs` kÃ¶nnen Sie die Signierung des CSR feiner abstimmen. FÃ¼r weitere Informationen lesen Sie bitte openssl_csr_new().

`serial`

  Eine optionale Seriennummer fÃ¼r das ausgestellte Zertifikat. Wenn nicht abgegeben wird der Standardwert 0 verwendet.

### Rückgabewerte

Gibt bei Erfolg eine x509 Zertifikat-Ressource zurÃ¼ck, `FALSE` bei einem Fehler.

### ChangeLog

Version | Beschreibung
--- | ---
4.3.3 | Der Parameter `serial` wurde hinzugefÃ¼gt.

### Beispiele

Beispiel #1 openssl_csr_sign() example - signing a CSR (how to implement your own CA)

`<?php
// Annahme: dieses Skript erhÃ¤lt einen CSR, der auf einer anderen Seite in
// eine Textarea eingegeben wurde.
$csrdata = $_POST["CSR"];
// Wir werden die Anfrage mit unserem eigenen ""certificate authority"
// Zertifikat signieren. Sie kÃ¶nnen jedes beliebige Zertifikat verwenden, um
// ein anderes zu signieren. Aber das Ganze ist ziemlich nutzlos, solange die
// Software/Benutzer, die dieses neu signierte Zertifikat nutzen werden, dem
// signierenden Zertifikat
// Wir brauchen unser CA Zertifikat und dessen privaten SchlÃ¼ssel
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");
$userscert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);
// Jetzt zeigem wir das generierte Zertifikat an, damit die Benutzer es
// kopieren und in ihre lokale Konfiguration einfÃ¼gen kÃ¶nnen (wie z.B. eine
// Datei, die das Zertifikat fÃ¼r ihren SSL Server enthalten soll.
openssl_x509_export($usercert, $certout);
echo $certout;
// Anzeigen der mÃ¶glichen aufgetretenen Fehler
while (($e = openssl_error_string()) !== false) {
echo $e . "\n";
}
?>`

openssl_csr_new
openssl_error_string
OpenSSL Funktionen
PHP Manual