php - 为什么 phpseclib 生成不兼容的证书?

标签 php c++ c openssl phpseclib

为什么当我尝试使用从 phpseclib 生成的证书/ key 对时,OpenSSL 服务器代码会出错?从 OpenSSL 生成的证书/ key 工作正常。我该如何解决这个问题?

直接取自 phpseclib documentation 的证书/ key 生成:

<?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";
?>

最佳答案

Phpseclib 要求您调用 $x509->setSerialNumber("0") 否则它将生成无效的证书。

关于php - 为什么 phpseclib 生成不兼容的证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17373225/

相关文章:

javascript - 通过电子邮件发送 JavaScript 对象数组

php - 在 JavaScript 或 PHP 中转义撇号

c++ - 如何在 C++ 项目中包含 Github 上托管的库? (新 C++ 用户 - 以前使用包管理器使用的语言)

c++ - boost 、互斥概念

C++ 多线程返回值

php - 我可以根据结果数将我的 MySQL 查询重构为一个查询吗?

php - 在输入邮政编码之前,WooCommerce 会阻止结帐

c - gcc 总是做这种优化吗? (常见的子表达式消除)

c - 运行 gsoap 应用程序时出现段错误

c - scanf() 用于读取格式化输入