Web应用程序将使用SSL调用Web服务 |
发布时间: 2012/5/23 20:13:56 |
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 SSL协议提供的服务主要有: 1)认证用户和服务器,确保数据发送到正确的客户机和服务器; 2)加密数据以防止数据中途被窃取; 3)维护数据的完整性,确保数据在传输过程中不被改变。 创建一个简单的 Web 服务 您将在此过程中创建一个简单的 Web 服务,供测试之用。 •在 Web 服务主机上创建一个简单的 Web 服务 1.启动 Visual Studio .NET,创建一个新的名为 SecureMath 的 Visual C# ASP.NET Web 服务应用程序。 2.将 service1.asmx 重命名为 math.asmx。 3.打开 math.asmx.cs 并将 Service1 类重命名为 math。 4.将下面的 Web 方法添加到 math 类。 [WebMethod] { return (operand1 + operand2); } 将 Web 服务虚拟目录配置为需要 SSL 您的 Web 服务在 Internet 信息服务 (IIS) 上运行并依赖 IIS 提供 SSL 支持。 此过程假设您在 Web 服务器上安装了有效的服务器证书。有关安装 Web 服务器证书的详细信息,请参见如何在 Web 服务器上设置 SSL。 •使用 IIS 配置 Web 服务的虚拟目录以使用 SSL 1.在 Web 服务主机上,启动 IIS。 2.导航到 SecureMath 虚拟目录。 3.右键单击 SecureMath,然后单击“属性”。 4.单击“目录安全性”选项卡。 5.单击“安全通信”下的“编辑”。如果无法使用“编辑”,则可能没有安装 Web 服务器证书。 6.选择“要求安全通道 (SSL)”复选框。 7.单击“确定”,然后再次单击“确定”。 8.在“继承覆盖”对话框中,单击“全选”,然后单击“确定”以关闭 SecureMath 属性对话框。 这会将新的安全设置应用于虚拟根目录下的所有子目录。 使用浏览器测试 Web 服务 此过程确保 Web 服务器证书是有效的,而且已经由客户端计算机所信任的证书颁发机构 (CA)颁发。 •使用 SSL 从 Internet Explorer 调用 Web 服务 1.在客户端计算机上启动 Internet Explorer 并(使用 HTTPS)浏览到 Web 服务。例如:https://WebServer/securemath/math.asmx 浏览器应该显示 Web 服务测试页。 2.如果成功显示了 Web 服务测试页,就关闭 Internet Explorer 并转到过程“开发一个 Web 应用程序以调用服务组件”。 3.如果显示的是“安全警报”对话框(如图 1 所示),单击“查看证书”查看颁发 Web 服务器证书的 CA 的身份。您必须在客户端计算机上安装该 CA 的证书。过程“在客户端计算机上安装证书颁发机构的证书”对此进行了说明。 4.关闭 Internet Explorer。
此过程在客户端计算机上安装 CA 所颁发的证书,并将该 CA 作为受信任的根证书颁发机构。客户端计算机必须信任该颁发证书的 CA,以便接受服务器证书,但不显示“安全警报”对话框。 •如果在 Windows 域中使用 Microsoft 证书服务作为 CA 1.仅在您的 Web 服务器证书是由 Microsoft 证书服务 CA 颁发的情况下,才需执行此过程。否则,如果您有 CA 的 .cer 文件,请转到第 8 步。 2.启动 Internet Explorer 并浏览到 http://hostname/certsrv,其中 hostname 是颁发服务器证书的 Microsoft 证书服务所在计算机的名称。 3.单击“检索 CA 证书或证书吊销列表”,然后单击“下一步”。 4.单击“安装此 CA 证书路径”。 5.在“根证书存储”对话框中,单击“是”。 6.使用 HTTPS 浏览到 Web 服务。例如:https://WebServer/securemath/math.asmx 浏览器中现在应该正确显示 Web 服务测试页,而不显示“安全警报”对话框。现在您已经在个人受信任根证书存储中安装了 CA 的证书。您必须将 CA 的证书添加到计算机的受信任根存储中,然后才能够从 ASP.NET 页成功调用 Web 服务。 7.重复第 1 步和第 2 步,单击“下载 CA 证书”,然后将其保存到本地计算机上的某个文件中。 8.现在执行其余步骤。如果有 CA 的 .cer 证书文件 9.在任务栏上,单击“开始”,然后单击“运行”。 10.键入“mmc”,然后单击“确定”。 11.在“控制台”菜单上,单击“添加/删除管理单元”。
13.选择“证书”,然后单击“添加”。 14.选择“计算机帐户”,然后单击“下一步”。 15.选择“本地计算机 (运行这个控制台的计算机):”,然后单击“完成”。 16.单击“关闭”,然后单击“确定”。 17.在 MMC 管理单元的左窗格中展开“证书 (本地计算机)”。 18.展开“受信任的根证书颁发机构”。 19.右键单击“证书”,指向“所有任务”,然后单击“导入”。 20.单击“下一步”跳过“证书导入向导”的“欢迎”对话框。 21.输入 CA 的 .cer 文件的路径和文件名。 22.单击“下一步”。 23.选择“将所有的证书放入下列存储区”,然后单击“浏览”。 24.选择“显示物理存储区”。 25.在列表中展开“受信任的根证书颁发机构”,然后选择“本地计算机”。 26.依次单击“确定”、“下一步”以及“完成”。 27.单击“确定”关闭确认消息框。 28.在 MMC 管理单元中刷新“证书”文件夹的视图,确认该 CA 的证书已列出。 29.关闭 MMC 管理单元。 开发一个 Web 应用程序以调用 Web 服务 本过程创建一个简单的 ASP.NET Web 应用程序。您将使用此 ASP.NET Web 应用程序作为客户端应用程序来调用 Web 服务。 •创建一个简单的 ASP.NET Web 应用程序 1.在 Web 服务客户端计算机上,创建一个新的名为 SecureMathClient 的 C# ASP.NET Web 应用程序。
1.右键单击解决方案资源管理器中的“引用”节点,然后单击“添加 Web 引用”。 2.在“添加 Web 引用”对话框中,输入 Web 服务的 URL。确保使用 HTTPS URL。 注意:如果您已经设置了对 Web 服务的 Web 引用但没有使用 HTTPS,您可以手动编辑生成的代理类文件并更改代码行,将 Url 属性的设置从 HTTP URL 更改为 HTTPS URL。 3.单击“添加引用”。 3.打开 WebForm1.aspx.cs 并在现有 using 语句之下添加下面的 using 语句。 using SecureMathClient.WebReference1; 4.在“设计器”模式下查看 WebForm1.aspx,并使用以下 ID 创建一个与图 2 类似的窗体: •operand1 •operand2 •result •add WebForm1.aspx 窗体 5.双击“Add”按钮,创建一个按钮单击事件处理程序。 6.将下面的代码添加到该事件处理程序中。 private void add_Click(object sender, System.EventArgs e) math mathService = new math(); int addResult = (int) mathService.Add( Int32.Parse(operand1.Text), Int32.Parse(operand2.Text)); result.Text = addResult.ToString(); } 8.运行该应用程序。输入要相加的两个数,然后单击“Add”按钮。该 Web 应用程序将使用 SSL 调用 Web 服务。 亿恩科技地址(ADD):郑州市黄河路129号天一大厦608室 邮编(ZIP):450008 传真(FAX):0371-60123888 本文出自:亿恩科技【www.enkj.com】 |