问一个客户端证书的问题
各位大侠,小弟工作遇到问题,特来拜山,还望各位老哥哥不吝赐教。
公司做的系统现在想要添加客户端证书验证的功能,其实就是在IIS服务器上设置了要求用户使用客户端证书之后,在程序里读取用户证书里面一些信息:用户名,电子邮件和公司名称。
一开始我觉得不难,找到证书里面的Subject域之后,读出来 OU, E, CN,三个字段就可以了,可是后来发现,似乎这只是一种格式,在网上看到很多其他的证书,格式各种各样, 有的压根没有E这个字段,电子邮件地址存放在了SubjectAltName里面,有的电子邮件放在CN里面 (CN=hostName/Email=xxx@xxx.xx)。而用户名和公司名称也有时候会在别的地方存着。
这一来我就糊涂了,如果我想要读出来这三个信息并且和系统里面的信息对比验证,那岂不是要把所有的域都读取一遍,挨个儿比较?为什么证书不是统一格式? 他们不应该都是X509标准的吗?难道这中间有什么我理解不对的地方?
最后一点,会有多少情况一个通过SSL连接的网站会允许用户使用各种各样认证机构颁发的证书?还是一般都只会接受一个指定认证机构的证书?
再次拜谢,恭候解答。