Function.openssl-csr-sign

Aus PHP-Wiki

Wechseln zu: Navigation, Suche
Ratenkredit Vergleichen Online - Die Effektivverzinsung und weitere Tücken und Kauf von Lebensversicherungen Vergleichen Online - Die BedingungenKleiderschrank Jazz von Zöllner . Typklassen

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

Inhaltsverzeichnis

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: Die ordnungsgemäße Ausführung dieser Funktion setzt die Installation einer gültigen openssl.cnf Datei voraus. Mehr Information hierzu finden sie im Installationsabschnitt.

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";
}
?>
Persönliche Werkzeuge