openssl csr new(): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '== openssl_csr_new == '''(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)''' === openssl_csr_new — Genererar en CSR === ==== Beskrivning ==== <pre> openssl_csr_new(array $distinguished_names, #[\SensitiveParameter] ?OpenSSLAsymmetricKey &$private_key, ?array $options = null, ?array $extra_attributes = null): OpenSSLCertificateSigningRequest|bool </pre> Funktionen `openssl_csr_new()` genererar en ny Certificate Signing Request (CSR) baserat på informationen som ges i '''distin...') |
(Ingen skillnad)
|
Nuvarande version från 31 oktober 2024 kl. 16.35
openssl_csr_new
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
openssl_csr_new — Genererar en CSR
Beskrivning
openssl_csr_new(array $distinguished_names, #[\SensitiveParameter] ?OpenSSLAsymmetricKey &$private_key, ?array $options = null, ?array $extra_attributes = null): OpenSSLCertificateSigningRequest|bool
Funktionen `openssl_csr_new()` genererar en ny Certificate Signing Request (CSR) baserat på informationen som ges i distinguished_names.
Notera: För att denna funktion ska fungera korrekt måste en giltig openssl.cnf vara installerad. Se installationssektionen för mer information.
Parametrar
distinguished_names De Distinguished Name- eller subject-fält som ska användas i certifikatet.
private_key private_key bör vara satt till en privat nyckel som tidigare genererats med openssl_pkey_new() (eller erhållits från någon annan funktion i openssl_pkey-familjen), eller en null-variabel. Om dess värde är null genereras en ny privat nyckel baserat på de angivna inställningarna och tilldelas variabeln. Den motsvarande publika delen av nyckeln används för att signera CSR:n.
options Som standard används informationen i din systems openssl.conf för att initiera förfrågan; du kan specificera en sektion från konfigurationsfilen genom att sätta nyckeln config_section_section i options. Du kan också specificera en alternativ OpenSSL-konfigurationsfil genom att sätta värdet för config till sökvägen för den fil du vill använda. Följande nycklar i options beter sig som deras motsvarigheter i openssl.conf, som listat nedan:
| options-nyckel | Typ | Motsvarande openssl.conf | Beskrivning |
|---|---|---|---|
| digest_alg | string | default_md | Digestmetod eller signaturhash, vanligtvis en av openssl_get_md_methods() |
| x509_extensions | string | x509_extensions | Väljer vilka tillägg som ska användas vid skapandet av ett x509-certifikat |
| req_extensions | string | req_extensions | Väljer vilka tillägg som ska användas vid skapandet av en CSR |
| private_key_bits | int | default_bits | Anger antalet bitar som ska användas för att generera en privat nyckel |
| private_key_type | int | none | Anger typen av privat nyckel som ska skapas. Kan vara en av OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_RSA eller OPENSSL_KEYTYPE_EC. Standardvärde är OPENSSL_KEYTYPE_RSA. |
| encrypt_key | bool | encrypt_key | Ska en exporterad nyckel (med lösenfras) krypteras? |
| encrypt_key_cipher | int | none | En av cipher-konstanterna. |
| curve_name | string | none | En av openssl_get_curve_names(). |
| config | string | N/A | Sökväg till din alternativa openssl.conf-fil. |
extra_attributes extra_attributes används för att specificera ytterligare konfigurationsalternativ för CSR:n. Både distinguished_names och extra_attributes är associativa arrayer, vars nycklar konverteras till OID:er och tillämpas på motsvarande del av förfrågan.
Returvärden
Returnerar CSR vid framgång, true om CSR-skapandet lyckas men signeringen misslyckas, eller false vid misslyckande.
Ändringslogg
| Version | Beskrivning |
|---|---|
| 8.0.0 | Vid framgång returnerar denna funktion nu en instans av OpenSSLCertificateSigningRequest; tidigare returnerades en resurs av typen OpenSSL X.509 CSR. |
| 8.0.0 | private_key accepterar nu en instans av OpenSSLAsymmetricKey; tidigare accepterades en resurs av typen OpenSSL key. |
| 7.1.0 | options stöder nu också curve_name. |
Exempel
Exempel #1 Skapar ett självsignerat certifikat
<?php
// För SSL-servercertifikat är commonName domännamnet som ska säkras
$dn = array(
"countryName" => "GB",
"stateOrProvinceName" => "Somerset",
"localityName" => "Glastonbury",
"organizationName" => "The Brain Room Limited",
"organizationalUnitName" => "PHP Documentation Team",
"commonName" => "Wez Furlong",
"emailAddress" => "wez@example.com"
);
// Generera ett nytt privat (och publikt) nyckelpar
$privkey = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
// Generera en certificate signing request
$csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));
// Generera ett självsignerat certifikat, giltigt i 365 dagar
$x509 = openssl_csr_sign($csr, null, $privkey, $days=365, array('digest_alg' => 'sha256'));
// Spara din privata nyckel, CSR och självsignerade certifikat för framtida användning
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($x509, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);
// Visa eventuella fel som uppstod
while (($e = openssl_error_string()) !== false) {
echo $e . "\n";
}
?>
Exempel #2 Skapar ett självsignerat ECC-certifikat (från och med PHP 7.1.0)
<?php
$subject = array(
"commonName" => "docs.php.net",
);
// Generera ett nytt privat (och publikt) nyckelpar
$private_key = openssl_pkey_new(array(
"private_key_type" => OPENSSL_KEYTYPE_EC,
"curve_name" => 'prime256v1',
));
// Generera en certificate signing request
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha384'));
// Generera ett självsignerat EC-certifikat
$x509 = openssl_csr_sign($csr, null, $private_key, $days=365, array('digest_alg' => 'sha384'));
openssl_x509_export_to_file($x509, 'ecc-cert.pem');
openssl_pkey_export_to_file($private_key, 'ecc-private.key');
?>
Se även
- openssl_csr_sign() - Signerar en CSR med ett annat certifikat (eller sig själv) och genererar ett certifikat
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/function.openssl-csr-new.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.