|
 |
openssl_csr_new (PHP 4 >= 4.2.0, PHP 5) openssl_csr_new -- Generates a CSR Descriptionmixed openssl_csr_new ( array dn, resource &privkey [, array configargs [, array extraattribs]] )
openssl_csr_new() generates a new CSR (Certificate Signing Request)
based on the information provided by dn, which represents the
Distinguished Name to be used in the certificate.
privkey should be set to a private key that was
previously generated by openssl_pkey_new() (or
otherwise obtained from the other openssl_pkey family of functions).
The corresponding public portion of the key will be used to sign the
CSR.
extraattribs is used to specify additional
configuration options for the CSR. Both dn and
extraattribs are associative arrays whose keys are
converted to OIDs and applied to the relevant part of the request.
Замечание:
You need to have a valid openssl.cnf installed for
this function to operate correctly.
See the notes under the installation
section for more information.
By default, the information in your system openssl.conf
is used to initialize the request; you can specify a configuration file
section by setting the config_section_section key of
configargs. You can also specify an alternative
openssl configuration file by setting the value of the
config key to the path of the file you want to use.
The following keys, if present in configargs
behave as their equivalents in the openssl.conf, as
listed in the table below.
Таблица 1. Configuration overrides configargs key | type | openssl.conf equivalent | description |
---|
digest_alg | string | default_md | Selects which digest method to use | x509_extensions | string | x509_extensions | Selects which extensions should be used when creating an x509
certificate | req_extensions | string | req_extensions | Selects which extensions should be used when creating a CSR | private_key_bits | string | default_bits | Specifies how many bits should be used to generate a private
key | private_key_type | integer | none | Specifies the type of private key to create. This can be one
of OPENSSL_KEYTYPE_DSA,
OPENSSL_KEYTYPE_DH or
OPENSSL_KEYTYPE_RSA.
The default value is OPENSSL_KEYTYPE_RSA which
is currently the only supported key type.
| encrypt_key | boolean | encrypt_key | Should an exported key (with passphrase) be encrypted? |
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Пример 1. openssl_csr_new() example - creating a
self-signed-certificate
<?php
$dn = array(
"countryName" => "UK",
"stateOrProvinceName" => "Somerset",
"localityName" => "Glastonbury",
"organizationName" => "The Brain Room Limited",
"organizationalUnitName" => "PHP Documentation Team",
"commonName" => "Wez Furlong",
"emailAddress" => "wez@example.com"
);
$privkey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privkey);
$sscert = openssl_csr_sign($csr, null, $privkey, 365);
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($sscert, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);
while (($e = openssl_error_string()) !== false) {
echo $e . "\n";
}
?>
|
|
openssl_csr_new
gonzak at op dot pl
14-Feb-2006 10:57
How in openssl_csr_new usign [, array configargs [, array extraattribs]]
because I am have add this extension to certificate
/********************
basicConstraints = critical,CA:TRUE,pathlen:0
nsCertType = sslCA,emailCA,objCA
**********************************/
Rafal
24-Jun-2005 12:34
If you get the error:
error:0D11A086:asn1 encoding routines:ASN1_mbstring_copy:string too short
then look at your key:value pairs in the $dn (distinguished name) array.
If you have one value (like "organizationalUnitName" = "") set to an empty string, it will throw the above error.
Fix the error by either eliminating that array element from $dn completely, or using a space " " instead of an empty string.
robertliu AT wiscore DOT com
12-May-2005 08:12
I am using PHP-4.3.11.
The type of configargs--private_key_bits is a INTEGER, not a string.
An example of configration:
<?php
$config = array(
"digest_alg" => "sha1",
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_DSA,
"encrypt_key" => false
);
?>
dankybastard at hotmail
09-Feb-2005 06:31
As you probably guessed from the example, the documentation is misinforming. openssl_csr_new returns a CSR resource or FALSE on failure.
mixed openssl_csr_new (assoc_array dn, resource_privkey, [...])
| |