   #PHP Manual OpenSSL functions openssl_csr_new openssl_error_string

   PHP Manual
   Prev  Next
   ______________________________________________________________________

                               openssl_csr_sign

   (PHP 4 >= 4.2.0)
   openssl_csr_sign -- Sign a CSR with another certificate (or itself)
   and generate a certificate

Description

   resource openssl_csr_sign ( mixed csr, mixed cacert, mixed priv_key,
   int days [, array configargs [, int serial]])

   openssl_csr_sign() generates an x509 certificate resource from the csr
   previously generated by openssl_csr_new(), but it can also be the path
   to a PEM encoded CSR when specified as file://path/to/csr or an
   exported string generated by openssl_csr_export(). The generated
   certificate will be signed by cacert. If cacert is NULL, the generated
   certificate will be a self-signed certificate. priv_key is the private
   key that corresponds to cacert. days specifies the length of time for
   which the generated certificate will be valid, in days. You can
   finetune the CSR signing by configargs. See openssl_csr_new() for more
   information about configargs. Since PHP 4.3.3 you can specify the
   serial number of issued certificate by serial. In earlier versions, it
   was always 0.

   Returns an x509 certificate resource on success, FALSE on failure.

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

   Example 1. openssl_csr_sign() example - signing a CSR (how to
   implement your own CA)
   <?php
   // Let's assume that this script is set to receive a CSR that has
   // been pasted into a textarea from another page
   $csrdata = $_POST["CSR"];
   // We will sign the request using our own "certificate authority"
   // certificate.  You can use any certificate to sign another, but
   // the process is worthless unless the signing certificate is trusted
   // by the software/users that will deal with the newly signed
   certificate
   // We need our CA cert and it's private key
   $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);
   // Now display the generated certificate so that the user can
   // copy and paste it into their local configuration (such as a file
   // to hold the certificate for their SSL server)
   openssl_x509_export($usercert, $certout);
   echo $certout;
   // Show any errors that occurred here
   while (($e = openssl_error_string()) !== false) {
       echo $e . "\n";
   }
   ?>
   ______________________________________________________________________

   Prev            Home                 Next
   openssl_csr_new  Up  openssl_error_string
