首先介绍一下ssl, ssl 的英文全称是 "secure sockets layer" ,中文名为 "安全套接层协议层 ",它是网景( netscape )公司提出的基于 web 应用的安全协议。ssl协议可分为两层: ssl记录协议(ssl record protocol):它建立在可靠的传输协议(如tcp)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。ssl是security socket layer的缩写,技术上称为安全套接字,可以简单为加密通讯协议,使用ssl可以对通讯(包括电子邮件)内容进行高强度的加密,以防止黑客监听您的通讯内容甚至是用户密码。
那么在xml web service上使用ssl有何意义呢?xml web service传输的数据是xml格式的,xml是一种明文,而传输层通过tcp/ip来传输,而tcp/ip的传输可能被非法监听,黑客可以轻易的将xml数据解析出来,截获信息甚至篡改数据,这样就造成了xml web service在数据传输中是很不安全的。利用ssl可以将原本的xml经过高强度的加密,从而有效的防止数据在传输过程中被非法截获和篡改。
下面讲下如何在xml web service上使用ssl,使用ssl需要一个数字证书,这个证书您可以通过商业购买也可以使用自己ca产生的证书,只是需要一些额外的工作而已。通常情况下,您的网络服务用于单位之间的合作接口的话,用自己的ca产生的证书就完全就可以了,但象银行这样的金融机构,他们的用户群比较大,最好还是购买证书。本文只阐述如何使用自己的ca产生ssl证书。
1. 安装证书颁发机构
windows 2003 标准版和服务器版都是自带证书颁发机构的组件的,但是默认不安装,要申请证书,必须安装证书颁发机构组件,安装方法:
打开控制面板-添加/删除程序,选择添加/删除windows组件,插入windows的安装光盘,选择“证书服务”,然后一路下一步即可。安装成功之后,便可以进入下一步的申请ssl证书。
2.申请ssl证书
要想为web service设置ssl,必须将web service设置为网站,而不能是虚拟目录。
首先,打开iis,右键单击web service所在网站 ,点击目录安全性,在安全通讯中选择“服务器证书”,点 击下一步,选择”新建证书“,点击下一步,然后选择”现在准备证书请求,但稍后发送“,点击下一步,输入一个任意的证书名称,位长选择默认的1024即可,长度越长保密性越好,但性能越差。单击下一步,输入单位和部门,单击下一步,出现如下界面:
注意:公共名称必须填写为访问站点的域名,如:要想用下面的地址访问web service,https://192.168.1.179/..,则此处必须填写"192.168.1.179”,否则将提示使用了不安全的证书,导致站点无法访问。将此步骤设置好以后,一路next即可。
在ie地址栏上输入“http://localhost/certsrv/default.asp”,在出现的网页中,选择“申请一个证书”,进入到下一个页面,选择“高级证书申请”,在下页中选择“使用base64编码的的cmc或pkcs#10文件提交一个证书申请,或使用一个pkcs#7文件续订一个证书申请”,在下页中,输入在上一步中生成文件中base64代码,保存的属性可以为空,一路next即可。
接下来需要作的的工作通过证书颁发机构,颁发刚才申请的证书,单击开始-管理工具-证书颁发机构,选挂起的的申请,在刚才申请的证书上点击右键,选择颁发,然后选择颁发的证书,点击刚才颁发的证书,选择详细信息,点击“复制到文件”,一路next下去就可以了,将证书保存到一个文件中。
接下来,回到iis设置中,在网络服务的站点上,再次点击服务器证书,选择“处理挂起的请求并安装”证书,选择刚才导出的证书文件,下一步即可。安装好证书后,点击目录安全性下-安全通讯-编辑,将“要求安全通道(ssl)"勾选上。这样就完成了ssl设置,注意勾选上ssl后,必须用https来访问,而访问网站的端口也会使用ssl端口,默认为443,如果在您访问站点的过程中出现无法正常访问的问题,请检查服务器防火墙是否禁止对ssl端口443的访问,这点比较容易被忽视。还有一点,因为是自己ca产生的证书,如果要让其他人能通过https访问网络服务,需要作额外的一点工作 ,将ca的根证书导入到客户端证书的可信任机构中,客户端就可以正常访问网络服务了。
新闻热点
疑难解答