首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >生成SHA256 CSRs Openssl

生成SHA256 CSRs Openssl
EN

Stack Overflow用户
提问于 2016-06-07 21:08:16
回答 1查看 687关注 0票数 1

我也在尝试使用PHP开发某种类型的PKI管理,并且我发现使用PHP Openssl存在许多问题(部分文档)。

例如,我通过反复尝试了解到,PHP openssl并不真正检查配置环境变量,使用不同配置文件的唯一真正方法是使用$configArray(‘OPENSSL_CONF’=> file_path)参数。

目前,我在尝试使用SHA256散列方法生成CSR时遇到困难。对于测试,我使用了这个最小的(但有效的) openssl.conf配置:

distinguished_name  = req_distinguished_name
[req]
default_md          = sha256
[req_distinguished_name]
[end_req_ext]
keyUsage                = digitalSignature,keyEncipherment
extendedKeyUsage        = serverAuth,clientAuth

(请注意,'default_md‘设置被$configArray’‘digest_alg’参数覆盖。

我使用以下代码进行测试:

$config = array(
    'digest_alg' => "sha256",
    'private_key_bits' => 384,
    'config'    => "/tmp/opensslmy.conf"
);

$dn = array(
    "countryName" => "UK",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong"
);

$key = openssl_pkey_new($config);
if (!$key) {
    print "Error on PKEY_NEW: ".openssl_error_string()."\n";
    exit(1);
}

$csr = openssl_csr_new ( $dn , $key, $config );
$pem = "";
if (openssl_csr_export($csr, $pem)) {
    print $pem."\n";
} else {
    print "Error on CSR_NEW: ".openssl_error_string()."\n";
}

它失败了:

PHP Warning:  openssl_csr_new(): Error signing request in /home/mark/Desktop/ssltest.php on line 25
PHP Warning:  openssl_csr_export() expects parameter 1 to be resource, boolean given in /home/mark/Desktop/ssltest.php on line 27
Error on CSR_NEW: error:0E06D06C:configuration file routines:NCONF_get_string:no value

如果将初始$config数组'digest_alg‘设置为md5或sha1,它就像一个咒语,并使用给定的散列算法成功地生成$config。

我还尝试从配置数组中删除'digest_alg‘键,并在配置文件中专门指定它(根据我的经验,即使是openssl请求-new命令,-sha256也无法工作,这是生成sha256 CSR的唯一方法)

我目前使用的是PHP5.5.9和OpenSSL 1.0.1f。

我做错了什么吗?PHP版本太旧了吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-16 06:20:42

问题不在于算法,而在于private_key_bits太小。这将触发一个错误,并导致CSR创建失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37680340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档