PHP如何读取USB KEY里面的数字证书的信息

PHP如何读取USB KEY里面的数字证书的信息,以前没有接触过这块,请各位高手帮忙解答下。
USB KEY是公安部的,我只是想读取里面的相关信息,比如姓名,警号,身份证号码(当然这些信息在USB KEY里面都存在的),然后登陆网站的时候读取这些信息,把它写到数据库里(相当于实名制访问)。只是读取不需要验证。
apache的环境除了配置SSL以外,还需要做什么样的处理,是不是需要第三方中间件。

请各位高手帮忙解答下,帮忙想想办法

作者: CNWono   发布时间: 2008-07-21

直接读取当然不行了,要通过USB KEY的控件来读的,比如ocx之类的控件

作者: xiaoqian0   发布时间: 2008-07-21

第三方应该有技术文档的.有些实例

作者: hahajohn2006   发布时间: 2008-07-21

根本就不需要什么中间件,直接使用php+openssl就可以读取了。当然你的apache需要mod_ssl配合才行。需要注意的是:用$_SERVER变量读取的DN是乱码,因为公安部发的证书DN是中文姓名+身份证号码,我研究了很长时间都不能将DN转码,所以显示出来的DN内容是乱码的,听说公安部CA中心本身就不支持windows,这个无从考究,不过用微软的capicom.dll接口在windows环境下读取的DN是正常的,只是通过mod_ssl将PKI内容加入APACHE环境变量时变成乱码罢了,必须使用Openssl接口读出来,然后通过内码转换为utf-8或者gbk就可以正常显示了。如果有兴趣可以在内网进行交流,目前我做的系统全部用上了这个PKI。内码的地址是http://www.f-hz.gzs.gd。

作者: rb_gao   发布时间: 2008-09-24

要加载插件,我们以前干过这种猥琐的东西。。。

简单的说不能是纯BS了,要有小客户端程序了。

作者: Bennyatt   发布时间: 2008-09-25

可以参考一下工行的U盾,主要问题还是客户端读取UKey里面内容

作者: wenbo_ying   发布时间: 2008-09-25

我以前搞过,来给你讲讲情况

公安部的pki、pmi 我所了解的用的是吉大正元的证书应用管理系统,吉大正元提供了相关的服务端包和开发支持包 我知道有java和vc的支持版本 

以java为例 

在tomcat的lib目录下要部署一个jar包 是关于证书支持的 吉大正元提供
另外,还有一个供开发使用,提取pki证书相关信息的系列类库 也是吉大正元提供

tomcat上除了配8443那个端口的https验证 要做两件事 生成有效的服务端证书和部署证书(那个证书目录好像是jdk下的security目录 我忘记了) 


一个标准的处理的流程如下:

首先要通过公安局的的证书中心签署生成服务端证书和在tomcat上部署 不知道你这个做了没 或者已经搞好了 部署目录也挺关键
如何生成服务端证书 网上文章很多 但切记 要公安的证书中心做一下签名才行

如果部署正常正常 客户端访问时,服务端会请求客户端的证书,插上Usb key
随后 客户端证书会传递并写在session里(有个系统session对象 关于x509的 具体名字忘了) 这是个x509证书对象 就是usb key证书里的信息 
上面这些操作系统完成,不需要编程,下面是编程的

获得session中的那个x509对象,通过相关类库,提取获得对象中的身份证号 姓名 等等信息 有相关的数据结构问厂商资料  


吉大正元的相关涉及的开发应该有个例子文档和类的说明的  

希望有所帮助

作者: landyhorse   发布时间: 2008-12-04

终于可以通过openssl函数完全读取USB-KEY中的内容了,公安部吉大公司制作的证书里有一些扩展信息,例如职级、警种、岗位等信息,当然单位的信息是通过O、L、OU等信息组合而成的。通过PHP和ASP两种方式读取的证书DN有点区别,ASP直接读取subject名称即可以得到姓名和身份证号码,而通过PHP读取的DN是经过了编码的姓名和身份证号码,但是读取subject里面DN却是正常的。需要注意的是,读出来的内容是UTF-8编码的。

作者: rb_gao   发布时间: 2009-05-16

ASP/ASP.NET页面获取客户端证书的方法
http://blog.csdn.net/PKI_CA/archive/2008/04/28/2339954.aspx

我的问题是:我用windows2003建立了SSL服务器,制作了服务器证书,也制作安装了客户端证书,也安装了数字证书驱动。但打开网站时,选择数字证书列表 里并不包含 我的PKI数字证书。是不是服务器证书必须经过数字证书中心签名。有没有其他办法??

作者: gguueesstt   发布时间: 2010-08-16

学习一下

作者: xiaoqiang4447   发布时间: 2010-08-16

$_SERVER["CERT_SUBJECT"]这个就是usb key里的数字证书相关信息。楼主可以输出看看。

作者: goldily   发布时间: 2010-08-16