在Unix下Apache中配置SSL完成,客户端提交客户证书后,服务器端如何获取提交证书的相关信息?如证书的有效期、微缩图等?由于是在Unix下,所以用不了微软的CAPICOM控件,求教~~!

解决方案 »

  1.   

    php 中应该有专门接收证书信息的控件吧
      

  2.   

    PHP Variables_SERVER["SSL_CLIENT_S_DN"] /C=CN/ST=JS/L=NJ/O=Test co,ltd./CN=Test co,ltd./[email protected] 
    _SERVER["SSL_CLIENT_V_START"] May 29 05:50:14 2007 GMT 
    _SERVER["SSL_CLIENT_V_END"] May 28 05:50:14 2008 GMT 
    你写一个
    <%
    phpinfo()
    %>
    就可以看到了
      

  3.   

    把以下这些信息换成PHP的写法就可以了Request.ServerVariables('Https_Secretkeysize')
    服务器验证私人关键字的位数如1024Request.ServerVariables('Https_Server_Issuer')
    服务器证书的发行者字段Request.ServerVariables('Https_Server_Subject')
    服务器证书的主题字段Request.ServerVariables('Auth_Password')
    当使用基本验证模式时,客户在密码对话框中输入的密码Request.ServerVariables('Auth_Type')
    是用户访问受保护的脚本时,服务器用於检验用户的验证方法Request.ServerVariables('Auth_User')
    代证的用户名Request.ServerVariables('Cert_Cookie')
    唯一的客户证书ID号Request.ServerVariables('Cert_Flag')
    客户证书标妼,如有客户端证书,则bit0为0如果客户端证书验证无效,bit1被设置为1Request.ServerVariables('Cert_Issuer')
    用户证书中的发行者字段Request.ServerVariables('Cert_Keysize')
    安全套接字层连接关键字的位数,如128Request.ServerVariables('Cert_Secretkeysize')
    服务器验证私人关键字的位数如1024Request.ServerVariables('Cert_Serialnumber')
    客户证书的序列号字段Request.ServerVariables('Cert_Server_Issuer')
    服务器证书的发行者字段Request.ServerVariables('Cert_Server_Subject')
    服务器证书的主题字段Request.ServerVariables('Cert_Subject')
    客户端证书的主题字段Request.ServerVariables('Content_Type')
    客户发送的formQg容或HTTPPUT的数据类型
    这里属性
      

  4.   

     <?php   
      print_r($_SERVER);   
      ?>   
    用这个查看
      

  5.   

    之前也试过
    echo $_SERVER["CLIENT_CERT"]."";
    echo $_SERVER["SSL_CLIENT_S_DN"];
    之类的属性,但是显示不出来,
    另外在别人的机器上phpinfo();后是可以看到_SERVER["CLIENT_CERT"]这类的这些属性的值位no value,可是在我本地的中phpinfo();后却没有这些属性的值了,不知是否php在用SSL时是否还需要进行什么配置?
    目前是我的Apache的双向SSL都已经配成功的了,可以提交证书访问test.php页面的。但_SERVER["CLIENT_CERT"]这类跟证书相关的参数属性值都取不到。
      

  6.   

    有什么地方设置可能导致呢?我已经是单单安装了下php5,什么没设置,运行test.php,但就是不见有_SERVER["CLIENT_CERT"]这些属性,是否php还要安装openssl?或者是Apache要做什么设置呢?
      

  7.   

    关注中,希望大虾出来解答。感觉PHP对于证书的支持不是很好
      

  8.   

    关注中,希望大虾出来解答。感觉PHP对于证书的支持不是很好
      

  9.   

    A呢  V呢  S呢   唠叨老大呢,出来讲讲啊,不会还在睡懒觉吧^_^
      

  10.   

    Apache的SSL.conf配置中要加上: SSLOptions +StdEnvVars然后你就可以在php中通过 $_SERVER['????']来获得大量与SSL有关的信息了,比如 $_SERVER['SSL_CLIENT_S_DN']