详解在Visual 2008中实现HTTPS和SSL
【IT专家网独家撰稿】SSL安全套接字层是基于B/S软件架构开发中很常见的一种安全措施。如通过网页访问OA系统或者电子商务系统,都会采用HTTPS和SSL安全套接字层。这主要是因为普通的网页采用的是HTTP协议,其没有采用加密机制。为此用户名、账户等机密信息在网络中是明文传播的,容易被人窃取。而SSL套接字层,其一个重要的功能就是对网络中传输的数据进行加密,以确保数据的安全性。为此在Visual Studio2008中开发B/S架构的应用软件,如何在这个平台上实现HTTPS和SSL,也是必须要掌握的一项技能。
一、配置HTTPS和SSL安全套接字层的一个原则问题。
在进行具体的配置之前,开发人员必须要牢记一个原则。如果要为SSL安全套接字层连接配置生成代理,则必须为每个IP地址和端口组合分别配置一个HTTPS证书。这书什么意思呢?即如果所有生成代理在生成计算机上共享通一个端口,则只能够配置一个证书。儿如果需要在多个端口上生成多个生成代理,则必须为每一个端口分别配置一个证书。总之必须为每一个IP地址和端口的组合分别配置一个HTTPS证书。多一个不行,少一个也不行。否则的话,后续测试时就会有问题。
在实际工作中,经常有人在这里载跟斗。最常见的错误就是“小气”。如可能需要在多个端口上生成代理,但是没有为每一个端口分别配置一个证书。特别是对刚开始接触这个安全套接字层的开发人员来说,很多人都会在这个问题上交学费。故笔者再次强调一下,如果要为SSL安全套接字层连接配置生成代理的话,一定要为每个IP地址和端口组合分配配置一个HTTPS证书。一一对应,不能多也不能够少。
二、安装配置的前提条件。
在Visual2008上实现HTTPS和SSL,除了需要牢记上面这个基本原则之外,还需要注意在对其进行配置之前必须要具备的一些前提条件。具体的说,有如下准备工作需要做。
一是需要确认是否已经为生成代理颁发了证书。在原则问题上,笔者已经强调了必须要为每个IP地址和端口组合分别配置一个HTTPS证书。故在配置之前,证书就必须存在。没有证书的话,后续的工作就无法做了。所以程序开发人员还需要跟企业的证书管理人员联系,确认是否已经生成了证书。
二在代理服务器上,是否安装了所必须的组件,并确认这些组件是否运行正常。如通常情况下,需要在生成计算机上安装Windows支持工具。只有通过这个支持工具,才能够将申请到的HTTPS证书与IP地址和端口进行关联。如需要安装Visual团队资源管理器,并确保这个工具运行正常。
三是需要管理员的权限。通常情况下,程序开发人员在开发应用程序的时候,不会采用管理员的角色。出于稳定方面的需要,往往采用的是普通用户的角色进行开发。但是如果要实现SSL安全套接字曾的话,则对这个权限有比较特殊的要求。它需要在安装团队资源管理器的电脑上具有管理员的权限。否则的话,在配置时会提示权限不足。这主要是因为将证书与端口进行关联的话,设计到操作系统层面的内容。只有具有管理员权限的用户,才能够完成这个操作。
三、配置实例。
笔者下面就以一个实际案例为例,具体介绍一下HTTPS和SSL安全套接字层的实现过程以及相关的注意事项,供大家参考。一般来说,要为生成代理配置SSL的话,以下步骤是必须的。
第一步:在服务器上创建生成代理并为其要求HTTPS。
注意:默认情况下是不会采用HTTPS和SSL建立连接的。因为大部分网页不需要这么高的安全性。故一般都是服务器要求客户端启用SSL连接。客户端答应之后,才会使用这个安全连接。如果拒绝,则连接请求可能会被取消。故第一步就是要讲生成代理配置为要求HTTPS和SSL连接。具体的配置过程如下。
打开“管理生成代理”对话框,选中“要求安全通道HTTPS”复选框。然后选择编辑,在弹出来的“生成代理属性”对话框中,从代理状态下拉菜单中选中“禁用”。
第二步:在生成代理中将Visual Studio Team Foundation Build配置要求为HTTPS。
注意:默认情况下,Visual Studio Team Foundation Build的配置为不要求HTTPS。在实现SSL的时候,需要更改这个配置,将其更改为要求HTTPS。在更改的时候,首先需要将这个服务停用掉。打开的服务不允许用户对其属性进行更改。这一点需要注意。另外更改这个配置的话,与第一步不同,需要比较高的权限,即计算机上的管理员权限。如果程序开发人员所用的账户没有这个权限的话,就需要更换账户登陆.
更改设置的时候,需要比较细心。因为没有专门的窗口来完成这个更改。开发人员需要直接对源文件进行设置。具体的来说,需要修改TfsBuildservice.config.exe这个文件。将这个文件利用XML编辑器打开,然后找到RequireSecureChannel这个键(可以通过查询功能查找)。找到后将其属性值改为true即可。修改后保存文件。
注意:修改完之后,先不要急着重新启动这个服务。因为后续的几个步骤,仍然要求在这个服务停用的情况下进行配置。
第三步:将HTTPS证书与IP地址和端口进行关联。
注意:在进行这个配置之前,笔者不厌其烦的再强调一次,一定要为每个IP地址和端口组合分别配置一个证书。即要一对一,多一个少一个都不行。还有就是进行这个配置的时候,也需要用到管理员权限,并且Visual Studio Team Foundation Build服务必须处在停用状态。最后需要提醒的是,必须在Team Foundation Build 服务帐户个人存储区或本地计算机个人存储区中安装Visual Studio Team Foundation Build服务的证书。如果在登录用户的个人存储区中安装证书,则Team Foundation Build将不会正常运行。
在进行关联之前,需要对证书进行修改。程序开发人员可以将证书通过文本编辑器打开,然后清除十六进制字符之间的所有空格。这里有一个技巧供大家参考。在文本编辑器中有一个查找替换功能,可以通过这个功能将每一个空格替换为NULL字符,实现清除空格的目的。证书更改完成之后,再使用Httpcfg命令将HTTPS证书与IP地址和端口进行关联。
注意:微软不同版本的操作系统,其进行关联的命令是不同的。在2003操作系统上,使用的是httpcfg命令。但是如果使用2008开发的话,则使用的是netsh命令。程序开发人员也没有必要进行强制的记忆。反正到目前为止,就是这两个命令。开发人员试一下就知道了。语法相同,只是命令的名字不同而已。
第四步:对生成代理端口和协议进行相关配置。
在完成如上的步骤之后,还需要对生成代理端口和协议进行相关的配置。在这个步骤中,主要有两项工作。一是使用wcfhttpconfig free命令,对端括号进行配置。二是如果服务器外面存在防火墙的话,则需要对防火墙进行配置。需要将这个端口加入到防火墙的例外列表中。注意这个防火墙的配置非常的重要。如果漏掉这一步的话,可能防火墙另外一端的用户就无法正常连接。这一步完成后,就可以重新启动服务了。
第五步:验证SSL的配置是否准确。
完成以上的功能之后,就需要对SSL的配置进行验证,判断其是否准确。验证的过程也比较简单,只需要将生成代理属性对话框中的代理状态更改为“启用”,通过使用生成代理执行生成来验证以上的配置是否正确无误。
posted on 2010-07-02 15:50 醒了又睡的鱼.NET 阅读(2451) 评论(0) 编辑 收藏 举报