当前位置:首页 > PHP教程 > php高级应用 > 列表

解决php中openssl pkey_new()创建中文数字证书乱码问题

发布:smiling 来源: PHP粉丝网  添加日期:2018-10-20 12:00:45 浏览: 评论:0 

用openssl创建证书时, 编码用utf-8, 中文证书出现乱码。经多项测试未能解决。

在apache2.2中创建不成功。 后升级服务器,使用apache2.4+php5.5, 重新执行,成功。

  1. $dn = array(   
  2.         "countryName"         => 'Zh'//所在国家名称   
  3.         "stateOrProvinceName" => '北京'//所在省份名称   
  4.         "localityName"        => '北京'//所在城市名称   
  5.         "organizationName"    =>  '北京理房通支付科技有限公司',   //注册人姓名   
  6.         "organizationalUnitName" => '北京理房通支付科技有限公司'//组织名称   
  7.         "commonName"          => '北京理房通支付科技有限公司'//公共名称   
  8.  
  9.     );  
  10.  
  11. print_r( $dn); 
  12.          
  13.  
  14. $numberofdays = 365;     //有效时长 
  15.       
  16. $cerpath = "./pem.cer";    //生成证书路径   
  17.         
  18.  $res = openssl_pkey_new(); 
  19.  $csr     = openssl_csr_new($dn$res);    //证书 
  20.  $sscert  = openssl_csr_sign($csr, null, $res$numberofdays);   //签名 
  21.  
  22.  openssl_x509_export($sscert$csrkey); //导出证书$csrkey   
  23. //phpfensi.com 
  24.    //生成证书文件 
  25.  
  26.     $fp = fopen($cerpath"w");   
  27.     fwrite($fp$csrkey);   
  28.     fclose($fp);  

Tags: 数字证书 乱码 中文

分享到: