在ASP中读取数字证书(ASP.NET)

1、环境要求
       服务器端IIS并配置安全站点。
2、读取数字证书(方法一)
数据集合:Request.ClientCertificate(key[SubField])
所有客户证书的信息的集合。对于Key,该集合具有如下的关键字:
Subject
证书持有者的主题,数据格式以英文逗号分隔。(不建议使用)
Issuer
证书的发行颁发者主题,数据格式以英文逗号分隔。(不建议使用)
VadidFrom
证书发行的日期,证书生效日期。
ValidUntil
该证书不再有效的时间。
SerialNumber
证书的序列号。
Certificate
包含整个证书内容的二进制流,使用ASN.1格式。
对于SubField,Subject和Issuer关键字可以具有如下的子域后缀:(比如:SubjectOU或IssuerL)
C
国家。
S
州(或省)。
O
公司或组织名称。
T
个人或公司的标题。
OU
组织单元。
GN
给定名称。
CN
用户的常规名称。
I
初始。
L
地区。
 
 
 
当文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通过使用#i nclude导向包含在你的Active Server Page里时,下面两个标志可以使用:
ceCertPresent
指明客户证书是否存在,其值为TRUE或FALSE。
ceUnrecongnizedIssure
指明在该链表中的最后的证书的发行者是否未知,其值为TRUE或FALSE。
3、读取数字证书(方法二)
数据集合:Request.ServerVaribles(Server Environment Variable)
环境变量的集合,读取HTTP头。可以通过使用HTTP_前缀来读取任何头信息。比如,HTTP_USER_AGENT接受客户代理HTTP头(浏览器类型)。此外,可以使用下表所示的变量获得数字证书相关信息。
CERT_COOKIE
唯一的客户证书ID号。
CERT_FLAG
客户证书标志,如有客户端证书,则bit0为0。如果客户端证书验证无效,bit1被设置为1。
CERT_ISSUER
用户证书中的颁发者字段。
CERT_KEYSIZE
安全套接字层连接关键字的位数,如128。
CERT_SECRETKEYSIZE
服务器验证私人关键字的位数。如1024。
CERT_SERIALNUMBER
客户证书的序列号字段。
CERT_SUBJECT
客户端证书的主题字段。
CERT_SERVER_ISSUER
服务器证书的发行者字段
CERT_SERVER_SUBJECT
服务器证书的主题字段。
HTTPS
如果请求穿过安全通道(SSL),则返回ON。如果请求来自非安全通道,则返回OFF。
HTTPS_KEYSIZE
安全套接字层连接关键字的位数,如128。
HTTPS_SECRETKEYSIZE
服务器验证私人关键字的位数。如1024。
HTTPS_SERVER_ISSUER
服务器证书的发行者字段。
HTTPS_SERVER_SUBJECT
服务器证书的主题字段。
 
4、补充说明
2中提到的通过Subject和Issuer所获得的相关主题信息在包含中文的情况下是乱码;通过Request.ServerVaribles数据集合获得证书持有者的主题信息和证书颁发机构的主题信息没有任何问题。
 

你可能感兴趣的:(asp.net,asp,服务器,server,vbscript,ssl)