在 PHP 中生成 SAN CSR
Generating a SAN CSR in PHP
我目前正在编写一个脚本,通过 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 中执行此操作?
我已经设法通过生成 openssl.cnf
文件的临时副本并在其中注入 subjectAltName
行来解决这个问题。然后可以通过设置 $config_args['config'] = $temporaryfilepath
来加载此配置
我目前正在编写一个脚本,通过 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 中执行此操作?
我已经设法通过生成 openssl.cnf
文件的临时副本并在其中注入 subjectAltName
行来解决这个问题。然后可以通过设置 $config_args['config'] = $temporaryfilepath