zoukankan      html  css  js  c++  java
  • 关于OpenSSL支持USBKEY证书的尝试

    作者:猩猩人类

    时间:2008-11-13

    因本人工作需要,需要在OpenSSL中访问USB-KEY中的证书和服务器建立连接。

    在神童哥的帮助下,得出二种实现方式。

    1、 如果USB-KEY的驱动程序支持PKCS#11接口,则OpenSSL通过engine可以比较方便地访问USB-KEY。

    2、 听说最新版本的OpenSSL 0.9.8i版本已经增WINDOWS CAPI的支持。

    因本人比较懒,就直接尝试了OpenSSL 0.9.8i版本。

    在网上参考了这个网站的信息

    http://markmail.org/message/hrrq3hhciz6vml6w#query:OPENSSL%20CryptoAPI%20ENGINE+page:1+mid:ufpkpzqtk5ohn5hz+state:results

    有兴趣的朋友可以去看看。



    好,现在开始工作。

    1、 下载OpenSSL 0.9.8i,并解包,地址:

    http://www.openssl.org/source/openssl-0.9.8i.tar.gz

    2、 下载ActivePerl,并安装,地址:

    http://www.activestate.com/Products/activeperl/index.mhtml

    3、 编译库,因为OpenSSL 0.9.8i默认是不打开CAPI支持的,所以在编译前先修改配置。因为我用的是VC,所以用

    perl Configure VC-WIN32 enable-capieng -DOPENSSL_SSL_CLIENT_ENGINE_AUTO=capi -DOPENSSL_CAPIENG_DIALOG 

    先打开enable-capieng,再把SSL_CLIENT的ENGINE自动指向CAPI

    4、 开始编译,编译都一样,我就不多说了,网上资料多的是。

    经过上面步骤,库的编译就完成了。



    下面开始测试。

    以前我用OPENSSL做CLINET的时候,是通过文件证书方式提供,不提供证书,对那些需要客户端证书的网站是无法访问。

    基于这个前提,进行了以下试验。

    进行对USB-KEY的试验(特别说明,试验用的USB-KEY是公安专用,所以第一次访问USB-KEY时会要求输入KEY的密码,并在公安内网中进行试验。)

    1、 用新编译的软件发起HTTPS页面请求,软件弹出公安KEY的密码输入窗口。(可以证明去访问了CAPI,并成功访问到该USB)。

    2、 输入密码后,返回的页面中带有USB-KEY主人的信息。(被证明USB-KEY支持成功)

    3、 拨出USB-KEY,再次请求该页面。返回的页面中不带任何人员信息,直接跳转到登录窗口。

    4、 再次插入(测试软件不重启),再次请求HTTPS,又出现密码输入窗口,输入密码后,成功访问页面,页面中并带有USB-KEY主人的信息。

    5、 再次请求该页面,没有出现密码输入窗口,页面返回正常,即同样带有USB-KEY主人的信息。

    通过以上五步测试,证明新编译的OPENSSL 0.9.8i版本可以自动的向CAPI进行调用。这给需要在OPENSSL中支持CAPI接口的开发者来说是一种福音,至少对我来说是,不用自己写代码,还要测试等等,呵呵。

    这个版本好像只支持WINDOWS下的CAPI接口,LINUX下的不清楚了。就说到这里,本着OPENSSL开源的原则,我把我的测试经过供大家参考。以后如果有类似需求的朋友可以尝试一下。
  • 相关阅读:
    uva 10369 Arctic Network
    uvalive 5834 Genghis Khan The Conqueror
    uvalive 4848 Tour Belt
    uvalive 4960 Sensor Network
    codeforces 798c Mike And Gcd Problem
    codeforces 796c Bank Hacking
    codeforces 768c Jon Snow And His Favourite Number
    hdu 1114 Piggy-Bank
    poj 1276 Cash Machine
    bzoj 2423 最长公共子序列
  • 原文地址:https://www.cnblogs.com/adylee/p/1538287.html
Copyright © 2011-2022 走看看