Example #1
1
 /**
  * @inheritDoc
  */
 public function generateCsr($fqdn, array $altNames = array())
 {
     $keys = $this->generateRsaKey(2048);
     $privKey = $this->getRsa();
     $privKey->loadKey($keys['privatekey']);
     $x509 = new X509();
     $x509->setPrivateKey($privKey);
     $x509->setDNProp('commonName', $fqdn);
     $x509->loadCSR($x509->saveCSR($x509->signCSR()));
     array_unshift($altNames, $fqdn);
     $SAN = array();
     foreach ($altNames as $dnsName) {
         $SAN[] = array('dNSName' => $dnsName);
     }
     // Set extension request.
     $x509->setExtension('id-ce-subjectAltName', $SAN);
     $pem = $x509->signCSR('sha256WithRSAEncryption');
     return $x509->saveCSR($pem, X509::FORMAT_DER);
 }