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

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

请各位高手帮忙解答下,帮忙想想办法
...全文
2946 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bo18 2010-08-31
  • 打赏
  • 举报
回复
还没结贴?
weifirst118 2010-08-16
  • 打赏
  • 举报
回复
学习一下
quzhongxiong 2010-08-16
  • 打赏
  • 举报
回复
以前做过一个加密狗的东西,用MFC写的,写入指定字符到特定U盘里面,然后再把这个读取字符的程序放入U盘,双击运行,然后再读取相对应的字符,如果正确则进入相对应后台,如果不是,则提示错误,不知你需要完成的功能是不是类似这样的..................
shengxiaol 2010-08-16
  • 打赏
  • 举报
回复
js貌似也可以读取的
goldily 2010-08-16
  • 打赏
  • 举报
回复
$_SERVER["CERT_SUBJECT"]这个就是usb key里的数字证书相关信息。楼主可以输出看看。
xiaoqiang4447 2010-08-16
  • 打赏
  • 举报
回复
学习一下
gguueesstt 2010-08-16
  • 打赏
  • 举报
回复
ASP/ASP.NET页面获取客户端证书的方法
http://blog.csdn.net/PKI_CA/archive/2008/04/28/2339954.aspx

我的问题是:我用windows2003建立了SSL服务器,制作了服务器证书,也制作安装了客户端证书,也安装了数字证书驱动。但打开网站时,选择数字证书列表 里并不包含 我的PKI数字证书。是不是服务器证书必须经过数字证书中心签名。有没有其他办法??
rb_gao 2009-05-16
  • 打赏
  • 举报
回复
终于可以通过openssl函数完全读取USB-KEY中的内容了,公安部吉大公司制作的证书里有一些扩展信息,例如职级、警种、岗位等信息,当然单位的信息是通过O、L、OU等信息组合而成的。通过PHP和ASP两种方式读取的证书DN有点区别,ASP直接读取subject名称即可以得到姓名和身份证号码,而通过PHP读取的DN是经过了编码的姓名和身份证号码,但是读取subject里面DN却是正常的。需要注意的是,读出来的内容是UTF-8编码的。
landyhorse 2008-12-04
  • 打赏
  • 举报
回复
我以前搞过,来给你讲讲情况

公安部的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对象,通过相关类库,提取获得对象中的身份证号 姓名 等等信息 有相关的数据结构问厂商资料


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

希望有所帮助

wenbo_ying 2008-09-25
  • 打赏
  • 举报
回复
可以参考一下工行的U盾,主要问题还是客户端读取UKey里面内容
Bennyatt 2008-09-25
  • 打赏
  • 举报
回复
要加载插件,我们以前干过这种猥琐的东西。。。

简单的说不能是纯BS了,要有小客户端程序了。
rb_gao 2008-09-24
  • 打赏
  • 举报
回复
根本就不需要什么中间件,直接使用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。
xiaoqian0 2008-07-21
  • 打赏
  • 举报
回复
直接读取当然不行了,要通过USB KEY的控件来读的,比如ocx之类的控件
hahajohn2006 2008-07-21
  • 打赏
  • 举报
回复
第三方应该有技术文档的.有些实例
发帖
基础编程

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
帖子事件
创建了帖子
2008-07-21 10:04
社区公告
暂无公告