以下是具有硬编码值的工作脚本:
$subject->currentCert['tbsCertificate']['extensions'][] = array(
'extnId' => 'id-ce-subjectAltName',
'critical' => false,
'extnValue' => array(
array('dNSName' => 'www.domain1.com'),
array('dNSName' => 'www.domain2.com')
)
);
我想更新上面的脚本(仅限extnValue部分(,以自动从另一个名为$OPTIONS["altnames"]的数组中获取值
首先,我将以下字符串转换为数组
$sans = 'www.domain1.com, www.domain2.com';
我用以下代码将字符串转换为数组$OPTIONS["altnames"]:
$OPTIONS["altnames"] = array();
if ( !empty($sans) ) {
if (strpos($sans,",") !== false) {
$sans = str_replace(" ", "", $sans); //remove spaces
$sans = explode(",", $sans); //strip each value after comma to array
foreach ($sans as $value) {
array_push($OPTIONS["altnames"], $value);
}
}
}
不确定下一步要做什么
从$OPTIONS['altnames']
:复制时,需要在extnValue
数组中添加另一个级别的数组
$extnValues = array();
foreach ($OPTIONS['altnames'] AS $name) {
$extnValues[] = array('dNSName' => $name);
}
$subject->currentCert['tbsCertificate']['extensions'][] = array(
'extnId' => 'id-ce-subjectAltName',
'critical' => false,
'extnValue' => $extnValues
);