用openssl创建证书时, 编码用utf-8, 中文证书出现乱码。经多项测试未能解决。
在apache2.2中创建不成功。 后升级服务器,使用apache2.4+php5.5, 重新执行,成功。
$dn = array(
"countryName" => 'Zh', //所在国家名称
"stateOrProvinceName" => '北京', //所在省份名称
"localityName" => '北京', //所在城市名称
"organizationName" => '北京理房通支付科技有限公司', //注册人姓名
"organizationalUnitName" => '北京理房通支付科技有限公司', //组织名称
"commonName" => '北京理房通支付科技有限公司', //公共名称
);
print_r( $dn);
$numberofdays = 365; //有效时长
$cerpath = "./pem.cer"; //生成证书路径
$res = openssl_pkey_new();
$csr = openssl_csr_new($dn, $res); //证书
$sscert = openssl_csr_sign($csr, null, $res, $numberofdays); //签名
openssl_x509_export($sscert, $csrkey); //导出证书$csrkey
//生成证书文件
$fp = fopen($cerpath, "w");
fwrite($fp, $csrkey);
fclose($fp);