0

phpseclib から生成された証明書/キー ペアを使用しようとすると、OpenSSL サーバー コードでエラーが発生するのはなぜですか? OpenSSL から生成された証明書/キーは正常に機能します。これを修正するにはどうすればよいですか?

phpseclib ドキュメントから直接取得した証明書/キーの生成:

<?php
include('File/X509.php');
include('Crypt/RSA.php');

// create private key / x.509 cert for stunnel / website
$privKey = new Crypt_RSA();
extract($privKey->createKey());
$privKey->loadKey($privatekey);

$pubKey = new Crypt_RSA();
$pubKey->loadKey($publickey);
$pubKey->setPublicKey();

$subject = new File_X509();
$subject->setDNProp('id-at-organizationName', 'phpseclib demo cert');
//$subject->removeDNProp('id-at-organizationName');
$subject->setPublicKey($pubKey);

$issuer = new File_X509();
$issuer->setPrivateKey($privKey);
$issuer->setDN($subject->getDN());

$x509 = new File_X509();
//$x509->setStartDate('-1 month'); // default: now
//$x509->setEndDate('+1 year'); // default: +1 year

$result = $x509->sign($issuer, $subject);
echo "the stunnel.pem contents are as follows:\r\n\r\n";
echo $privKey->getPrivateKey();
echo "\r\n";
echo $x509->saveX509($result);
echo "\r\n";
?>
4

1 に答える 1

0

Phpseclib では、呼び出す必要があります$x509->setSerialNumber("0")。そうしないと、無効な証明書が生成されます。

于 2013-06-29T16:57:40.780 に答える