PHP Handbuch
Zurück |  | Weiter

# 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 von csr, der vorher mit openssl_csr_new() erzeugt wurde. Sie kÃ¶nnen mit csr aber auch einen Pfad zu einer PEM kodierten CSR Datei angeben: `file://path/to/csr`, oder einer mit Hilfe von openssl_csr_export()exportierten Zeichenkette. Das generierte Zertifikat wird mit cacert signiert. Falls Sie fÃ¼r cacert `NULL` angeben, wird das generierte Zertifikat ein selbstsigniertes Zertifikat sein. priv_key ist der private SchlÃ¼ssel, der zu cacert gehÃ¶rt. Mit days legen Sie die GÃ¼ltigkeitsdauer des generierten Zertifikats in Tagen fest. Mit configargs kÃ¶nnen Sie die Signierung des CSR feiner abstimmen. FÃ¼r weterfÃ¼hrende Informationen Ã¼ber die Verwendung von configargs lesen Sie bitte bei der Dokumentation zu openssl_csr_new() nach. Seit PHP 4.3.3 kÃ¶nnen Sie die Seriennummer des ausgestellten Zertifikats mit serial angeben. In frÃ¼heren Versionen war dieser Wert immer 0.

Gibt bei Erfolg eine x509 Zertifikatressource zurÃ¼ck, `FALSE` bei einem Fehler.

> Anmerkung: 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.

Beispiel 1. openssl_csr_sign() Beispiel - signieren eines CSR (wie Sie ihre eigene CA implementieren)

`<?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";
}
?>`

Zurück | Zum Anfang | Weiter
openssl_csr_new | Nach oben | openssl_error_string