在PHP中生成SAN CSR

时间:2015-11-17 11:26:53

标签: php ssl openssl csr

我目前正在编写一个脚本,通过Web界面生成CSR,以提交生成证书。我目前的问题是我想生成一个SAN证书,但我找不到有关如何将subjectAlternateName添加到生成的证书请求中的任何信息。

我目前的代码是:

$private_key = openssl_pkey_new( array( 'private_key_bits' => 2048 ) );
$domain_data = [
    "countryName"            => 'GB',
    "stateOrProvinceName"    => 'Countyname',
    "localityName"           => 'townname',
    "organizationName"       => 'Company ltd.',
    "organizationalUnitName" => "IT",
    "emailAddress"           => 'IT@example.com',
    "commonName"             => 'example.com',
];
$config_args = ['private_key_bits' => 2048];
$attributes = [];

$csr = openssl_csr_new( $domain_data, $private_key, $config_args, $attributes );

openssl_csr_export( $csr, $csr_out );

subjectAlternateName数组中添加$domain_data似乎在我稍后解析时没有向CSR中添加任何内容。

是否可以直接在PHP中执行此操作?

1 个答案:

答案 0 :(得分:1)

我已设法通过生成openssl.cnf文件的临时副本并注入subjectAltName行来解决此问题。然后可以通过设置$config_args['config'] = $temporaryfilepath

来加载此配置