用Windows2000实现安全Web站点
来源:优易学  2011-3-16 11:30:54   【优易学:中国教育考试门户网】   资料下载   财会书店
SSL(Security Socket Layer,简称安全套接字协议层)是电子商务的一种重要技术,可用于实现安全web站点。但是,迄今为止,报刊上有关文章主要在于理论介绍,具体实现技术的介绍比较少见,其中原因主要在于商业的认证中心(Certificate Authority,又称CA中心)在国内还不太成熟,向国外申请又太贵。还有些文章提到了用Windows2000来自己建立CA中心,同样也主要是理论介绍,凭借它们加上Windows的帮助,要设计一个安全web站点,依然有一定难度,笔者通过一段时间摸索,掌握了有关的实现技术,特介绍之,与同行共享。
  为便于大家掌握,以下介绍采用最简单的工作环境(见图1),即:Web服务器Windows2000AdvancedServer作为操作系统;认证中心则在此基础上增加了“证书颁发机构”组件,IP地址为10.15.11.13,证书颁发策略为“立即颁发”;浏览器用IE4.0或IE5.0,服务器放在Intranet上,通过网络颁发数字证书。假设要实现安全Web的站点名为默认站点Myweb.
  一、数字证书的取得与管理
  (一)生成申请Web站点数字证书的文件
  本操作在Web服务器端进行。具体步骤是:
  1.启动Web服务器的“Internet信息服务”
  2.在“Internet信息服务”中,右击Myweb站点名,选择快捷菜单的“属性”命令,出现“Myweb属性”对话框;
  3.单击“Myweb属性”对话框中“目录安全性”页标签,再单击“服务器证书”按钮。
  4.在“IIS证书向导”对话框中,按提示,依次选择“创建一个新证书”,“现在准备请求,但稍候发送”等,设置有关属性,将最后的证书申请以文本文件保存,假设文件名为:E:\\certreq.txt.
  5.最后单击“完成”即可
  (二)生成服务器证书
  首先,将证书申请文件内容复制到剪切板。方法是,用记事本打开E:\\certreq.txt,查看申请文件内容。可以看到这是一个纯文本文件,以PKCS#10编码格式保存,首尾两行为申请的开始与结束。选择“编辑/全选”,再选择“编辑/复制”即可。
  然后生成服务器证书。紧接前一步,在Web服务器端依次执行:
  1.启动IE,在地址栏打入命令:http://10.15.11.13/certsrv
  2.选择“申请证书”,单击“下一步”;
  3.选择申请类型为“高级申请”,单击“下一步”;
  4.选择第2项“使用Base64编码的PKCS#10文件提交一个证书申请,或使用Base64编码的PKCS#7文件更新证书申请”,单击“下一步”;
  5.右击中间“Base64编码证书申请”右边的编辑框,选择快捷菜单项“粘贴”,将证书申请内容粘贴进去(见图2);
  图2(略)
  6.单击“提交”按钮,则完成申请功能。
  7.由于认证中心的证书颁发策略为立即颁发,因此很快,CA中心就会将证书颁发给你,屏幕上显示“您申请的证书已发布给您”,你可以“下载CA证书及CA证书路径”等提示(见图3);
  图3(略)
  8.选择“Base64编码”,单击对应的显示,将证书以mywebcert.cer为文件名保存在桌面上。
  (三)安装服务器证书
  再进入到“myweb属性”对话框中,单击“服务器证书”,在“IIS证书向导”对话框中,按提示操作即可安装服务器证书。其中要求:
  1.选择“处理挂起的请求并安装证书”;
  2.输入证书文件名时,单击“浏览”,选择桌面上的文件“mywebcert”(即存放刚才生成的服务器证书的文件),单击“打开”,直到出现“完成”对话框时,单击“完成”按钮即完成证书安装。
  (四)查看并备份服务器证书
  接上一步,单击“myweb属性”对话框中的“查看证书”按钮,将显示服务器的证书,显示内容略。在“证书”对话框中单击“详细信息”页,再单击“复制到文件”将该证书以文件名mywebcert.pfx保存在桌面上。注意文件的扩展名表示“个人信息交换”证书文件,与前面不同,文件保存了证书的公钥与私钥。
  二、设置“安全通信”属性
  接上一步,单击myweb属性对话框中的“编辑”按钮,选中“申请安全通道”与“申请客户证书”(见图4),再单击“确定”。
  图4(略)
  这表示客户浏览器查看Myweb站点的内容时,必须申请安全通道。要申请安全通道,客户端必须拥有本服务器信任的证书,否则不允许客户浏览。并且必须在地址栏打入https开头,而不是Http,进行SSL的安全通信。具体操作过程略。
  如果允许客户决定与web服务器通信加密,或不加密通信,则设置为“接收客户证书”。
  除此之外,还可以对证书信任列表进行设置,本文略。
  三、ASP与安全web站点有关的对象与方法
  (一)Session对象
  Session是访问者从到达某个特定主页到离开为止的那段时间,每个访问者都会单独获得一个session.这是一个内置对象。其中属性Session.SessionID可作为一个用户session的惟一标识。我们一般设置普遍信息非加密浏览,敏感信息要求加密通信,例如一个电子商务网站,登记注册时要求加密通信,注册后察看一般产品时用非加密通信,而要输入信用卡时,又要用加密通信。为此,我们只要将两类信息在web站点下面分目录存放,其中非加密浏览的目录取消其“目录安全性”的“申请安全通道”复选框即可,方法类同2. ASP用Response.RedirectURL,将浏览器在不同的目录网页之间转换。同时,检测Session对象的SessionID属性,只要它是一样的,Web服务器就知道还是同一个用户浏览。
  (二)客户证书集
  客户证书可以通过Request对象来检测,所有与该Web站点通信的客户证书的信息存储在集合Request.ClientCertficate(key[SubField])中。
  对于Key,该集合具有如下的关键字:
  1.Subject证书的主题。包含所有关于证书收据的信息,能和所有的子域后缀一起使用;
  2.Issuer证书的发行人。包含所有关于证书验证的信息,除了CN外,能和所有的子域后缀一起使用;
  3.ValidFrom证书发行的日期,使用VBScript格式;
  4.ValidUntel证书有效截止日期;
  5.Seria1Number证书的序列号;
  6.Certificate整个证书内容的二进制流,使用ASN.1格式。
  对于Subfield,Subject和Issuer关键字可以具有如下的子域后缀:(比如SubjectOU或IssuerL)
  C表示国家,O表示公司或组织名称,OU表示组织单元,CN表示用户的常规名称,L表示局部,S表示州(或省),T表示个人或公司的标题,GN表示给定名称,I表示初始。
  当文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通过使用#INCLUDE包含在你的Active Server Page里时,下面两个标志可以使用:
  ceCertPresent指明客户证书是否存在,其值为TRUE或FALSE.
  CeUnrecongnizedIssure指明在该链表中的最后的证书的发行者是否未知,其值为TRUE或FALSE.
  (三)服务器环境变量中与证书有关的变量
  由环境变量的集合Request.ServerVaribles检测,可以通过使用HTTP前缀来读取任何头信息。与服务器证书有关的信息,可以使用下列变量获得。
  AUTHPASSWORD当使用基本验证模式时,客户在密码对话框中输入的密码。
  AUTHTYPE这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。
  AUTHUSER代验证的用户名。
  CERTCOOKIE唯一的客户证书ID号
  CERTFLAG客户证书标志,如有客户端证书,则bit0为0.如果客户端证书验证无效,bit1被设置为1.
  CERTISSUER用户证书中的发行者字段。
  CERTKEYSIZE安全套接字层连接关键字的位数。如128.
  CERTSECRETKEYSIZE服务器验证私人关键字的位数。如1024.
  CERTSERIALNUMBER客户证书的序列号字段。
  CERTSERVERISSUER服务器证书的发行者字段。
  CERTSERVERSUBJECT服务器证书的主题字段。
  CERTSUBJECT客户端证书的主题字段。
  HTTPS如果请求穿过安全通道(SSL),则返回ON.如果请求来自非安全通道,则返回OFF.
  HTTPSKEYSIZE安全套接字层连接关键字的位数,如128.
  HTTPSSECRETKEYSIZE服务器验证私人关键字的位数,如1024.
  HTTPSSERVERISSUER服务器证书的发行者字段。
  HTTPSSERVERSUBJECT服务器证书的主题字段。青年人网收集整理

责任编辑:虫虫

文章搜索:
 相关文章
热点资讯
热门课程培训