.网站数字证书制作与使用

网站服务器与数字证书 

  由于Windows NT系统的容易维护,很多单位或者ISP都采用它,大部分是做WEB服务器使用。虽然IIS存在很多新的漏洞和安全问题,但只要我们做好合理的安全配置,还是可以避免很多安全隐患的。因此,本文选择IIS服务器来测试数字证书。
  1. http与https的相关知识
  简单的说默认情况下我们所使用的HTTP协议是没有任何加密措施的,所有的消息全部都是以明文形式在网络上传送的,恶意的攻击者可以通过安装监听程序来获得我们和服务器之间的通讯内容。这点危害在一些企业内部网络中尤其比较大,对于使用HUB的企业内网来说简直就是没有任何安全可讲因为任何人都可以在一台电脑上看到其他人在网络中的活动,对于使用交换机来组网的网络来说虽然安全威胁性要小很多,但很多时候还是会有安全突破口,比如没有更改交换机的默认用户和口令,被人上去把自己的网络接口设置为侦听口,依然可以监视整个网络的所有活动。
  除了匿名访问、基本验证和Windows NT请求/响应方式外,还有一种安全性更高的认证,就是通过SSL(Security Socket Layer)安全机制使用数字证书。建立了SSL安全机制后,只有SSL允许的客户才能与SSL允许的Web站点进行通信,并且在使用URL资源定位器时,输入https://,而不是http://。SSL(加密套接字协议层)位于HTTP层和TCP层之间,建立用户与服务器之间的加密通信,确保所传递信息的安全性。SSL是工作在公共密钥和私人密钥基础上的,任何用户都可以获得公共密钥来加密数据,但解密数据必须要通过相应的私人密钥。使用SSL安全机制时,首先客户端与服务器建立连接,服务器把它的数字证书与公共密钥一并发送给客户端,客户端随机生成会话密钥,用从服务器得到的公共密钥对会话密钥进行加密,并把会话密钥在网络上传递给服务器,而会话密钥只有在服务器端用私人密钥才能解密,这样,客户端和服务器端就建立了一个惟一的安全通道。
  2. 申请服务器证书
  首先,在Windows2000中打开Internet信息服务管理器,然后打开要为之申请证书的站点的属性。以笔者的机器为例,选择“默认web站点”,点击右键,在弹出的菜单中选择“属性”,出现属性对话框。找到“目录安全性”对话框。如果以前从未用过这项,“编辑”显示为灰色。如图13所示。


图 13 
  选择“服务器证书”按钮,根据服务器证书的状态,选择“下一步”。在出现的选项中,选择“创建一个新证书”。现在可以准备证书请求了。点击“下一步”。在这一步,要选择私钥的长度,建议选能力范围内能选的最大值。如图14所示。
.网站数字证书制作与使用_第1张图片

图 14 
  如果我们已经产生了一对密钥。私钥将存储在机器上。这些信息将显示在证书上,并将说明这个密钥的所有者。接着输入组织信息和公钥信息。然后输入公用名称。注意“公用名称”是用来区分不同证书的最好方法。在SSL服务器证书的情况下,一般输入主机的域名,比如www.cndes.net即可。如图15所示。
.网站数字证书制作与使用_第2张图片

图 15 
  接着输入地理信息。选择存储证书请求的文件,选择一个容易找到的位置,用写字板打开这个文件,拷贝并粘贴在我们的申请页面的“证书请求”一栏中。 一旦请求被提交,将不再需要这个文件。最后产生申请的摘要信息,点击“下一步”,完成申请步骤。如图16所示。
.网站数字证书制作与使用_第3张图片

图 16 
  当证书请求产生之后,会被保存为一个使用默认文件名(如certreq.txt)或您指定文件名的文本文件,存储在服务器的硬盘上。使用 NotePad 或其他 ASCII 文本编辑器打开证书请求文件,可以查看证书请求的内容。注意,不能用Word或其他文字处理软件打开证书请求文件,因为这些软件会在证书请求文件中插入格式控制符。
3. 获得服务器证书和安装服务器证书 


  获得服务器证书的方法和本文中获得个人数字证书的方法有点类似。需要注意的是,要保存好刚才的申请文件,在申请的过程中需要使用到这个文件,而且这个文件只能使用一次,而且在申请的时候一定要把证书请求复制到文本框,具体可以登陆https://testca.netca.net/apply_srv/srv_root.asp这个站点按照上面的提示进行,最后应该下载到一个后缀名为.cer的服务器证书文件。本例中,根据产生的受理号和密码,可以下载一个server.cer文件。
  安装证书的时候,在Windows2000中打开Internet信息服务管理器,然后打开要为之申请证书的站点的属性。还是选择“目录安全性”,选择“服务器证书”,现在我们发现,服务器已经挂起了一个证书请求。根据证书向导,处理挂起的请求并安装证书。如图17所示。
.网站数字证书制作与使用_第4张图片

图 17 
  点击“下一步”,输入刚才申请到的server.cer文件的路径和名称。继续“下一步”,可以得到摘要信息。如图18所示。
.网站数字证书制作与使用_第5张图片

图 18 
  单击“下一步”,完成服务器证书的安装。
  4. 服务器证书的设置和服务器的访问
  在Windows2000中打开Internet信息服务管理器,然后打开要为之申请证书的站点的属性。选择“目录安全性”,选择“服务器证书”,我们发现,现在下方的三个按钮都能够使用了。如图19所示。
.网站数字证书制作与使用_第6张图片

图 19 
  选择“编辑”按钮,就可以对访问用户进行控制了。如图20所示。


图 20 
  看到这里,读者朋友应该可以明白为什么我们可以访问[url=https://www.cnca.net/] https://www.cnca.net[/url] 的原因了吧。事实上,国内商家的网上交易很多就是在这个安全隧道里面进行的。有了这个安全保证,我们就可以在网上放心的购物了。
利用数字证书进行代码签名 


  当你在店铺里购买软件时,软件的来源很清楚,你可以分辨软件的提供商;同时,凭借软件的封装,你可以看到软件有没有被拆封过。籍此,人们可以决定对软件的信任程度。但是,当软件放到了Internet上,你在下载时,还能有足够的信心吗?在计算机病毒横行的今天,也许,你正在下载的杀毒软件恰是一个病毒程序,这样的事情一点也不奇怪,那么,我们在网上怎么信任那些exe文件呢? 
  任何软件提供商要想通过网络来发布代码或程序,都会面临着软件被仿冒和篡改的风险。通过数字证书使用代码签名技术就可以有效地防范这些风险。代码签名证书是CA中心签发给软件提供商的数字证书,包含软件提供商的身份信息、公钥及签名。软件提供商使用代码签名证书对软件进行签名后放到Internet上,当用户在Internet上下载该软件时,将会得到提示,从而可以确信软件的来源和软件自签名后到下载前没有遭到修改或破坏。 
  对于用户来说,使用代码签名证书可以清楚了解软件的来源和可靠性,增强了用户使用Internet获取软件的决心。万一用户下载的是有害软件,也可以根据证书追踪到软件的来源。对于软件提供商来说,使用代码签名证书,其软件产品更难以被仿造和篡改,增强了软件提供商与用户间的信任度和软件商的信誉。
  如果你编写一个ActiveX 控件并放在网页中,别人通过Internet下载时通常会出现一个安全警告,提示代码没有签名。在你的Certificate Server安装目录下找到xenroll.cab,并查看其属性,你会发现多了一栏数字签名,这里你可以查看签名验证情况以及相关证书。要给自己的程序签名其实也很简单,Microsoft有一个Authenticode工具专名用来给代码签名,你可以从Microsoft站点下载到,里面有许多工具,但通常你只要用到signcode.exe就够了。首先你需要有一个代码签名证书,然后使用signcode.exe使用过程很方便,基本是wizard方式的,在提示选择使用的签名证书时按“从存储器选择”按钮选择签名证书。你可以选择将所以证书放入签名,也可以不将根证书放入签名,建议不要将根证书放入签名,还是应让用户从你的站点下载根证书,因为带根证书的签名是没有意义的,虽然这会给用户带来一些麻烦(他需要先安装根证书才能正确验证你的签名)。在提示加入时间戳时选择不加入时间戳。完成签名后你可以从文件属性验证其签名和证书。
  时间戳的作用在于证明某一段数据在该时间的存在性。比如你有一个重大发现,希望用它来争取诺贝尔奖,你用Word编写你的论文,但是为了证明你是第一个发现者,你需要证明你写论文的时间,由于文件的时间可任意修改,不能作为证明,所以你需要有一个时间戳,你通过某个Hash算法计算出你的Word文件的摘要并发送给一个权威的时间戳签名服务商(DTS),DTS对摘要和签发时间进行签名形成时间戳发还给你,你将文件时间戳合并,作为将来证明你撰写论文时间的依据。时间戳服务需要很高的权威性,所以对私钥存储,时间来源都有很高的要求。目前这方面应用不多,好象Office 2000似乎支持时间戳功能。
  无论是SSL也好,安全电子邮件也好,代码签名也好都是Netscape最先提出和使用的,在Netscape中使用这些技术,方法都很相似(Microsoft学的还真象),所以这里不再多说了。IE5.0以后,Microsoft的这些技术和产品已经比较成熟,在功能上部分超越了Netscape,但Netscape毕竟是原创,在这方面的文档资料比较全面,讨论组和邮件列表也比较多,所以在技术支持方面会比较好一点。目前,代码签名证书可以对32-bit .exe、.cab、.ocx、.class等程序和文件进行签名。
  数字证书在网络安全中的使用还有很多,比如软件的版权签名、通过专门的数字签名软件给文档盖“公章”、进行网络站点的安全访问等,掌握这些知识将对我们今后的学习和工作产生很大的影响。毫无疑问,这将逐渐成为一种网络安全趋势,没有这些身份认证,我们在网络上将寸步难行,读者朋友可以在今后的学习和使用中多多体会。

 
 

你可能感兴趣的:(数字认证)