本文整理汇总了PHP中openssl_csr_sign函数的典型用法代码示例。如果您正苦于以下问题:PHP openssl_csr_sign函数的具体用法?PHP openssl_csr_sign怎么用?PHP openssl_csr_sign使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了openssl_csr_sign函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: createNewcertificate
function createNewcertificate()
{
global $gbl, $login, $ghtml;
$cerpath = "server.crt";
$keypath = "server.key";
$requestpath = "a.csr";
$ltemp["countryName"] = "IN";
$ltemp["stateOrProvinceName"] = "Bn";
$ltemp["localityName"] = "Bn";
$ltemp["organizationName"] = "LxCenter";
$ltemp["organizationalUnitName"] = "Kloxo";
$ltemp["commonName"] = "Kloxo";
$ltemp["emailAddress"] = "[email protected]";
$privkey = openssl_pkey_new();
openssl_pkey_export_to_file($privkey, $keypath);
$csr = openssl_csr_new($ltemp, $privkey);
openssl_csr_export_to_file($csr, $requestpath);
$sscert = openssl_csr_sign($csr, null, $privkey, 365);
openssl_x509_export_to_file($sscert, $cerpath);
$src = getcwd();
$dest = '/usr/local/lxlabs/kloxo/ext/lxhttpd/conf';
root_execsys("lxfilesys_mkdir", $dest . "/ssl.crt/");
root_execsys("lxfilesys_mkdir", $dest . "/ssl.key/");
root_execsys("lxfilesys_mv", "{$src}/{$cerpath}", $dest . "/ssl.crt/" . $cerpath);
root_execsys("lxfilesys_mv", "{$src}/{$keypath}", $dest . "/ssl.key/" . $cerpath);
root_execsys("lxfilesys_mv", "{$src}/{$requestpath}", "{$dest}/{$requestpath}");
}
开发者ID:zseand,项目名称:kloxo,代码行数:27,代码来源:openssl.php
示例2: generate
/**
* @param SigningDetails $dn
* @param null $privateKey
* @param null $privkeypass
* @param int $numberofdays
* @return array
* @throws \Exception
*/
function generate(SigningDetails $dn, $privateKey = null, $privkeypass = null, $numberofdays = 365)
{
if ($privateKey === null) {
$privkey = $this->generatePrivateKey();
} elseif (is_string($privateKey)) {
$privkey = openssl_pkey_get_private($privateKey);
} else {
throw new \Exception('Invalid format for private key');
}
if (!$privkey) {
throw new \Exception('Invalid private key');
}
$csr = @openssl_csr_new($dn->toArray(), $privkey);
if (!$csr) {
throw new \Exception('Failed create signing request. Input likely invalid.');
}
$sscert = openssl_csr_sign($csr, null, $privkey, $numberofdays);
if (!$sscert) {
throw new \Exception('Failed create signing request. Input likely invalid.');
}
openssl_x509_export($sscert, $publickey);
$privatekey = null;
if (!openssl_pkey_export($privkey, $privatekey, $privkeypass)) {
throw new \Exception('Private key generatio failed');
}
/*$csrStr = null;
if(!openssl_csr_export($csr, $csrStr)){
throw new \Exception('CSR generation failed');
}*/
return [$publickey, $privatekey];
}
开发者ID:splitice,项目名称:radical-ssl,代码行数:39,代码来源:X509Helpers.php
示例3: makeKeys
public function makeKeys($distinguishedName, $passphrase = NULL, $certCA = NULL, $keyCA)
{
// keep track of the distinguished name
$this->dn = $distinguishedName;
// generate the pem-encoded private key
$config = array('digest_alg' => 'sha1', 'private_key_bits' => 1024, 'encrypt_key' => TRUE);
$key = openssl_pkey_new($config);
// generate the certificate signing request...
$csr = openssl_csr_new($this->dn, $key, $config);
// and use it to make a self-signed certificate
$this->serialNumber = rand();
$cert = openssl_csr_sign($csr, NULL, $key, 365, $config, time());
// make openssl forget the key
openssl_free_key($keyCA);
// export private and public keys
openssl_pkey_export($key, $this->privatekey, $passphrase, $config);
//openssl_pkey_export_to_file ( $this->privatekey , "server.key", $passphrase, $config )
openssl_x509_export($cert, $this->certificate);
// parse certificate
$this->x509 = openssl_x509_parse($cert);
if (isset($this->serialNumber)) {
$outfilename = '/var/www/html/' . $this->serialNumber;
// Gets an exportable representation of a key into a file
openssl_pkey_export_to_file($key, $outfilename . '.pem', $passphrase, $config);
}
openssl_x509_export_to_file($this->certificate, $outfilename . '.crt', TRUE);
return TRUE;
// end of makeKeys() method
}
开发者ID:Ricardo-Costa-Oliveira,项目名称:SAFEBOOK,代码行数:29,代码来源:openSSL.php
示例4: generateSslKeypair
function generateSslKeypair($commonName, $mail, $keyLength)
{
$key = openssl_pkey_new(array("private_key_bits" => $keyLength));
$certConf = parse_ini_file("cert.conf", true);
$dn = $certConf["dn"];
$dn["commonName"] = $commonName;
$dn["emailAddress"] = $mail;
$cert = openssl_csr_new($dn, $key);
// Creating a new X509 Certificate Signing Request
if ($e = error_get_last()) {
// Issues found in parsing the arguments will get a warning. A CSR is created, nonetheless
throw new Exception("Error occured:" . $e["message"]);
}
$signed = openssl_csr_sign($cert, null, $key, $certConf["csr"]["validity_in_days"], array("config" => "../core/cert.conf", "config_section_name" => "csr", "x509_extensions" => "clientx509_ext"));
// Self-signed X509 certificate with SHA256 digest and extensions specified in local openssl.conf
if (!$signed) {
throw new Exception("Error occured while signing certificate");
}
openssl_pkey_export($key, $privateKey);
// Export private-key to $privateKey
openssl_x509_export($signed, $clientCert, FALSE);
// Export signed-certificate to $clientCert
openssl_x509_export($signed, $publicKey);
// Export public-key from the signed-certificate to $publicKey
return array($clientCert, $publicKey, $privateKey);
}
开发者ID:pauldraper,项目名称:simple-ldap-manager,代码行数:26,代码来源:util.php
示例5: generateSslKeypair
function generateSslKeypair($commonName, $keyLength)
{
$key = openssl_pkey_new(array("private_key_bits" => $keyLength));
$default = getDefaultConfPath();
if (file_exists($default . "/cert-overrides.ini")) {
$confFile = $default . "/cert-overrides.ini";
} else {
$confFile = $_SERVER["DOCUMENT_ROOT"] . "/conf/cert.ini";
}
$certConf = parse_ini_file($confFile, true);
$dn = $certConf["dn"];
$dn["commonName"] = $commonName;
$cert = openssl_csr_new($dn, $key);
// Creating a new X509 Certificate Signing Request
if ($e = error_get_last()) {
// Issues found in parsing the arguments will get a warning. A CSR is created, nonetheless
throw new Exception("Error occured:" . $e["message"]);
}
$signed = openssl_csr_sign($cert, null, $key, $certConf["csr"]["validity_in_days"], array("config" => $confFile, "config_section_name" => "csr", "x509_extensions" => "clientx509_ext"));
// Self-signed X509 certificate with SHA256 digest and extensions specified in local openssl.conf
if (!$signed) {
throw new Exception("Error occured while signing certificate");
}
openssl_pkey_export($key, $privateKey);
// Export private-key to $privateKey
openssl_x509_export($signed, $clientCert);
// Export signed-certificate to $clientCert without Extra Details
return array($clientCert, $privateKey);
}
开发者ID:sriraamas,项目名称:simple-ldap-manager,代码行数:29,代码来源:util.php
示例6: get_keys
static public function get_keys($login,$full_name) {
$CA_CERT = base_url()."data/key/CA_DOC.csr";
$CA_KEY = base_url()."data/key/CA_DOC_priv.key";
$config = array(
"private_key_type"=>OPENSSL_KEYTYPE_RSA,
"private_key_bits"=>512
);
$res = openssl_pkey_new($config);
$privKey = '';
openssl_pkey_export($res,$privKey);
$arr = array(
"organizationName" => "Фізична особа",
"organizationalUnitName" => "Фізична особа",
"commonName" => $full_name,
"UID" => $login,
"countryName" => "UA"
);
$csr = openssl_csr_new($arr,$privKey);
$cert = openssl_csr_sign($csr,file_get_contents($CA_CERT),file_get_contents($CA_KEY),730);
openssl_x509_export($cert,$str_cert);
$public_key = openssl_pkey_get_public($str_cert);
$public_key_details = openssl_pkey_get_details($public_key);
$public_key_string = $public_key_details['key'];
return array('private'=>$privKey,'cert'=>$str_cert,'public'=>$public_key_string);
}
开发者ID:2ovob4ehko,项目名称:doc,代码行数:25,代码来源:Enc.php
示例7: run
public function run()
{
if (strrev($this->input['folder']) !== DIRECTORY_SEPARATOR) {
$this->input['folder'] .= DIRECTORY_SEPARATOR;
}
$files = [];
foreach (['pub', 'key', 'crt', 'csr'] as $extension) {
$files[$extension] = sprintf('%s%s%s.%s', $this->input['folder'], $this->input['prefix'], $this->input['hostname'], $extension);
}
foreach ($files as $file) {
if (file_exists($file)) {
throw new RuntimeException(sprintf('File exist: %s', $file));
}
}
$dn = array("countryName" => $this->input['country'], "stateOrProvinceName" => $this->input['state-or-province-name'], "localityName" => $this->input['locality-name'], "organizationName" => $this->input['organization-name'], "organizationalUnitName" => $this->input['organizational-unit-name'], "commonName" => $this->input['common-name'], "emailAddress" => $this->input['email-address']);
// Create the private and public key
$res = openssl_pkey_new(['digest_alg' => $this->input['alg'], 'private_key_bits' => $this->input['bits'], 'private_key_type' => OPENSSL_KEYTYPE_RSA]);
// Generate a certificate signing request
$csr = openssl_csr_new(array_filter($dn), $res);
// Creates a self-signed cert
$sscert = openssl_csr_sign($csr, null, $res, $this->input['days']);
openssl_csr_export($csr, $out);
file_put_contents($files['csr'], $out);
// Export certfile
openssl_x509_export($sscert, $out);
file_put_contents($files['crt'], $out);
// Extract the private key from $res to $privKey
openssl_pkey_export($res, $out);
file_put_contents($files['key'], $out);
// Extract the public key from $res to $pubKey
$out = openssl_pkey_get_details($res);
file_put_contents($files['pub'], $out["key"]);
}
开发者ID:pbergman,项目名称:php-docker-token-auth,代码行数:33,代码来源:CreateKeys.php
示例8: setUpBeforeClass
public static function setUpBeforeClass()
{
self::$pKey = openssl_pkey_new();
$csr = openssl_csr_new([], self::$pKey);
$x509 = openssl_csr_sign($csr, null, self::$pKey, 1);
openssl_x509_export($x509, self::$certificate);
openssl_x509_free($x509);
}
开发者ID:poisa,项目名称:aws-php-sns-message-validator,代码行数:8,代码来源:MessageValidatorTest.php
示例9: sign
/**
* Sign this CSR
*
* @param security.KeyPair keypair
* @param int days default 365
* @param var cacert default NULL
* @return security.cert.X509Certificate
*/
public function sign($keypair, $days = 365, $cacert = NULL)
{
if (FALSE === ($x509 = openssl_csr_sign($this->_res, $cacert, $keypair->_res, $days))) {
trigger_error(implode("\n @", OpenSslUtil::getErrors()), E_USER_NOTICE);
throw new CertificateException('Cannot sign certificate');
}
if (FALSE === openssl_x509_export($x509, $str)) {
trigger_error(implode("\n @", OpenSslUtil::getErrors()), E_USER_NOTICE);
throw new CertificateException('Cannot export certificate');
}
return X509Certificate::fromString($str);
}
开发者ID:melogamepay,项目名称:xp-framework,代码行数:20,代码来源:CSR.class.php
示例10: create_ssl_cert
function create_ssl_cert($pem_file, $pem_passphrase, $pem_dn)
{
$privkey = openssl_pkey_new();
$cert = openssl_csr_new($pem_dn, $privkey);
$cert = openssl_csr_sign($cert, null, $privkey, 365);
$pem = array();
openssl_x509_export($cert, $pem[0]);
openssl_pkey_export($privkey, $pem[1], $pem_passphrase);
$pem = implode($pem);
file_put_contents($pem_file, $pem);
chmod($pem_file, 0600);
}
开发者ID:jia-git,项目名称:phpchat,代码行数:12,代码来源:chat_server.php
示例11: create
/**
* @param array $dn
* @param null $passPhrase
*
* @return string
*/
public function create(array $dn, $passPhrase = null)
{
$config = $this->getConfig();
$key = openssl_pkey_new($config);
$crt = openssl_csr_new($dn, $key, $config);
$crt = openssl_csr_sign($crt, null, $key, 365, $config);
$x509 = null;
$pKey = null;
openssl_x509_export($crt, $x509);
openssl_pkey_export($key, $pKey, $passPhrase, $config);
return $x509 . $pKey;
}
开发者ID:kzykhys,项目名称:coupe,代码行数:18,代码来源:Certificate.php
示例12: createSSLCert
private function createSSLCert()
{
$privKey = openssl_pkey_new();
$cert = openssl_csr_new(self::$pemDN, $privKey);
$cert = openssl_csr_sign($cert, null, $privKey, 365);
$pem = [];
openssl_x509_export($cert, $pem[0]);
openssl_pkey_export($privKey, $pem[1], self::PEM_PASSPHRASE);
$pem = implode($pem);
file_put_contents($this->pemFile, $pem);
chmod($this->pemFile, 0600);
}
开发者ID:javabudd,项目名称:CbApi,代码行数:12,代码来源:TestServer.php
示例13: generateKeys
function generateKeys($passphrase)
{
$identity = Zend_Auth::getInstance()->getIdentity();
$dn = array("countryName" => $this->_config->countryName, "stateOrProvinceName" => $this->_config->stateOrProvinceName, "localityName" => $this->_config->localityName, "organizationName" => $this->_config->organizationName, "organizationalUnitName" => $this->_config->organizationUnitName, "commonName" => $identity->firstName . " " . $identity->lastName . "(" . $identity->username . ")", "emailAddress" => $this->_config->emailAddress);
$privkey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privkey);
$sscert = openssl_csr_sign($csr, null, $privkey, $this->_config->numberOfDays);
openssl_x509_export($sscert, $publickey);
openssl_pkey_export($privkey, $privatekey);
openssl_csr_export($csr, $csrStr);
$this->publicKey = $publickey;
$this->privateKey = $this->_encryptPrivateKey($privatekey, $passphrase);
}
开发者ID:jakedorst,项目名称:ch3-dev-preview,代码行数:13,代码来源:UserKey.php
示例14: generatePemFile
/**
* Generates a new PEM File given the informations
*
* @param string $pem_file the path of the PEM file to create
* @param string $pem_passphrase the passphrase to protect the PEM
* file or if you don't want to
* use a passphrase
* @param string $country_name the country code of the new PEM file. e.g.: EN
* @param string $state_or_province_name the state or province name of the new PEM file
* @param string $locality_name the name of the locality
* @param string $organization_name the name of the organisation. e.g.: MyCompany
* @param string $organizational_unit_name the organisation unit name
* @param string $common_name the common name
* @param string $email_address the email address
*/
public static function generatePemFile($pem_file, $pem_passphrase, $country_name, $state_or_province_name, $locality_name, $organization_name, $organizational_unit_name, $common_name, $email_address)
{
// Generate PEM file
$dn = array('countryName' => $country_name, 'stateOrProvinceName' => $state_or_province_name, 'localityName' => $locality_name, 'organizationName' => $organization_name, 'organizationalUnitName' => $organizational_unit_name, 'commonName' => $common_name, 'emailAddress' => $email_address);
$privkey = openssl_pkey_new();
$cert = openssl_csr_new($dn, $privkey);
$cert = openssl_csr_sign($cert, null, $privkey, 365);
$pem = array();
openssl_x509_export($cert, $pem[0]);
openssl_pkey_export($privkey, $pem[1], $pem_passphrase);
$pem = implode($pem);
file_put_contents($pem_file, $pem);
}
开发者ID:sahilmalhan,项目名称:dubdub,代码行数:28,代码来源:Ssl.php
示例15: signCertificate
public function signCertificate($cacert = null, $days = 365)
{
\debug("OpenSSL CSR: Signing certificate (cacert=%s, days=%d)", $cacert ? 'yes' : 'no', $days);
$this->csr = openssl_csr_new($this->dn, $this->pkey);
// Default serial to 0
if ($this->serial) {
$serial = $this->serial;
} else {
$serial = 0;
}
$this->signed = openssl_csr_sign($this->csr, $cacert, $this->pkey, $days, [], $serial);
// Return true on success
return true;
}
开发者ID:noccy80,项目名称:cherryphp,代码行数:14,代码来源:csr.php
示例16: generate
/**
* Generate a pkcs12 file and private key to use with remote desktoping.
*
* @param string $password
* @return RemoteDesktopCertificate
*/
public static function generate()
{
if (!extension_loaded('openssl')) {
throw new \RuntimeException("Can only generate a remote desktop certificate when OpenSSL PHP extension is installed.");
}
// Generate a new private (and public) key pair
$config = array('config' => __DIR__ . '/../Resources/config/openssl.cnf');
$privkey = openssl_pkey_new($config);
// Generate a certificate signing request
$dn = array("commonName" => "AzureDistributionBundle for Symfony Tools");
$csr = openssl_csr_new($dn, $privkey, $config);
$sscert = openssl_csr_sign($csr, null, $privkey, 365, $config);
return new self($privkey, $sscert);
}
开发者ID:nmariani,项目名称:AzureDistributionBundle,代码行数:20,代码来源:RemoteDesktopCertificate.php
示例17: execute
protected function execute($arguments = array(), $options = array())
{
if (!extension_loaded('openssl')) {
throw Exception('this task requires the openssl php extension, see http://www.php.net/openssl');
}
$days = null;
while (!is_numeric($days)) {
$days = $this->ask('The Days of Validity (default:365)');
if (!$days) {
$days = 365;
}
}
while (!($phrase = $this->ask('Private Key Phrase'))) {
}
$country = null;
while (!($country = strtoupper($this->ask('Country Name (2 letter code)'))) || strlen($country) != 2) {
$this->logBlock('invalid format.', 'ERROR');
}
while (!($state = $this->ask('State or Province Name (full name)'))) {
}
while (!($locality = $this->ask('Locality Name (eg,city)'))) {
}
while (!($org = $this->ask('Organization Name(eg,company)'))) {
}
while (!($orgUnit = $this->ask('Organization Unit Name(eg,section)'))) {
}
while (!($common = $this->ask('Common Name(eg,Your name)'))) {
}
while (!($email = $this->ask('Email Address'))) {
}
$dn = array('countryName' => $country, 'stateOrProvinceName' => $state, 'localityName' => $locality, 'organizationName' => $org, 'organizationalUnitName' => $orgUnit, 'commonName' => $common, 'emailAddress' => $email);
$dirname = sfConfig::get('sf_plugins_dir') . '/opOpenSocialPlugin/certs';
$filesystem = new sfFilesystem($this->dispatcher, $this->formatter);
$filesystem->mkdirs($dirname);
$privatekey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privatekey);
$sscert = openssl_csr_sign($csr, null, $privatekey, $days);
openssl_x509_export($sscert, $certout);
openssl_pkey_export($privatekey, $pkeyout, $phrase);
$cert_filename = $dirname . '/public.crt';
file_put_contents($cert_filename, $certout);
$this->logSection('file+', $cert_filename);
$pkey_filename = $dirname . '/private.key';
file_put_contents($pkey_filename, $pkeyout);
$this->logSection('file+', $pkey_filename);
$databaseManager = new sfDatabaseManager($this->configuration);
Doctrine::getTable('SnsConfig')->set('shindig_private_key_phrase', $phrase);
}
开发者ID:niryuu,项目名称:opOpenSocialPlugin,代码行数:48,代码来源:opOpenSocialGeneratekeyTask.class.php
示例18: createUserCert
public function createUserCert($filename)
{
$dn = (array) $this;
$privateKeyPass = $this->generate_password();
//$filename = dirname(__FILE__) . '/certificate.pfx';
$numberOfDays = 365 * 3;
$privateKey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privateKey);
$sscert = openssl_csr_sign($csr, null, $privateKey, $numberOfDays);
//create a csr file, change null to a filename to save it if you need to
$key = openssl_pkey_get_private($privateKey, $privateKeyPass);
//parses the $privateKey and prepares it for use by openssl_pkcs12_export_to_file.
openssl_pkcs12_export_to_file($sscert, $filename, $key, $privateKeyPass);
//Save the pfx file to $filename
return $privateKeyPass;
}
开发者ID:hkhateb,项目名称:linet3,代码行数:16,代码来源:SSLHelper.php
示例19: gen_new_keypair
function gen_new_keypair($expired = false)
{
$config = array('private_key_bits' => 384, 'digest_alg' => 'sha1', 'private_key_type' => OPENSSL_KEYTYPE_RSA);
$privkey = openssl_pkey_new($config);
$pw = "c0nfusa";
$dn = array("countryName" => 'NO', "localityName" => 'Drammen', "organizationName" => 'Austad IT', "commonName" => 'austad.us', "emailAddress" => '[email protected]');
$csr = openssl_csr_new($dn, $privkey);
if ($expired) {
$cert = openssl_csr_sign($csr, null, $privkey, -1);
} else {
$cert = openssl_csr_sign($csr, null, $privkey, 14);
}
openssl_pkey_export($privkey, $privkeystr, $pw);
openssl_x509_export($cert, $certstr);
openssl_csr_export($csr, $csrstr);
return array('key' => $privkeystr, 'cert' => $certstr, 'csr' => $csrstr, 'pw' => $pw);
}
开发者ID:henrikau,项目名称:confusa,代码行数:17,代码来源:test_curl_cert.php
示例20: generateCertificate
public function generateCertificate($certData)
{
$configParams = array("digest_alg" => "sha512", "private_key_bits" => 4096, "private_key_type" => OPENSSL_KEYTYPE_RSA);
$privkey = openssl_pkey_new($configParams);
//Now, using the private key, we can create the certificate. First we define the certificate parameters:
//And then we can create the certificate:
$csr = openssl_csr_new($certData, $privkey, $configParams);
//Now we sign the certificate using the private key:
$duration = 2 * 365;
$sscert = openssl_csr_sign($csr, null, $privkey, $duration, $configParams);
//Finally we can export the certificate and the private key:
openssl_x509_export($sscert, $certout);
$password = NULL;
openssl_pkey_export($privkey, $pkout, $password, $configParams);
//Note that a password is needed to export the private key. If a password is not needed, you must set $password
//to NULL (don't set it to empty string as the private key password will be an empty string).
return array('privateKey' => $pkout, 'certificate' => $certout);
}
开发者ID:ioanok,项目名称:symfoxid,代码行数:18,代码来源:CertificateGenerator.php
注:本文中的openssl_csr_sign函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论