openssl csr sign()

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_sign — Signerar en CSR med ett annat certifikat (eller sig själv) och genererar ett certifikat

Beskrivning

openssl_csr_sign(OpenSSLCertificateSigningRequest|string $csr, OpenSSLCertificate|string|null $ca_certificate, #[\SensitiveParameter] OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key, int $days, ?array $options = null, int $serial = 0, ?string $serial_hex = null): OpenSSLCertificate|false

Funktionen `openssl_csr_sign()` genererar ett x509-certifikat från den angivna Certificate Signing Request (CSR).

Notera: För att denna funktion ska fungera korrekt måste en giltig openssl.cnf vara installerad. Se installationssektionen för mer information.

Parametrar

csr En CSR som tidigare genererats av openssl_csr_new(). Den kan också vara sökvägen till en PEM-kodad CSR när den anges som file://path/to/csr eller en exporterad sträng genererad av openssl_csr_export().

ca_certificate Det genererade certifikatet signeras av ca_certificate. Om ca_certificate är null blir det genererade certifikatet ett självsignerat certifikat.

private_key Den privata nyckeln som motsvarar ca_certificate.

days Anger hur länge det genererade certifikatet kommer att vara giltigt, i dagar.

options Du kan justera CSR-signeringen med options. Se openssl_csr_new() för mer information om options.

serial Ett valfritt serienummer för det utfärdade certifikatet. Om det inte anges är standardvärdet 0.

Returvärden

Returnerar ett OpenSSLCertificate vid framgång, false vid misslyckande.

Ändringslogg

Version Beskrivning
8.0.0 Vid framgång returnerar denna funktion nu en instans av OpenSSLCertificate; tidigare returnerades en resurs av typen OpenSSL X.509.
8.0.0 csr accepterar nu en instans av OpenSSLCertificateSigningRequest; tidigare accepterades en resurs av typen OpenSSL X.509 CSR.
8.0.0 ca_certificate accepterar nu en instans av OpenSSLCertificate; tidigare accepterades en resurs av typen OpenSSL X.509.
8.0.0 private_key accepterar nu en instans av OpenSSLAsymmetricKey eller OpenSSLCertificate; tidigare accepterades en resurs av typen OpenSSL key eller OpenSSL X.509.

Exempel

Exempel #1 openssl_csr_sign()-exempel - signering av en CSR (hur man implementerar sin egen CA)

<?php
// Anta att detta skript tar emot en CSR som har
// klistrats in i en textarea från en annan sida
$csrdata = $_POST["CSR"];

// Vi kommer att signera förfrågan med vårt eget certifikatutfärdar-certifikat (CA).
// Man kan använda vilket certifikat som helst för att signera ett annat, men
// processen är värdelös om inte certifikatet som signerar är betrott
// av den mjukvara/användare som kommer att hantera det nyss signerade certifikatet

// Vi behöver vårt CA-certifikat och dess privata nyckel
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");

$usercert = openssl_csr_sign($csrdata, $cacert, $privkey, 365, array('digest_alg'=>'sha256') );

// Visa det genererade certifikatet så att användaren kan
// kopiera och klistra in det i sin lokala konfiguration (som en fil
// som håller certifikatet för deras SSL-server)
openssl_x509_export($usercert, $certout);
echo $certout;

// Visa eventuella fel som uppstod här
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/function.openssl-csr-sign.php PHP Funktioner Funktionsreferens OpenSSL-funktioner


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.