单向 SSL

发表于:2007-06-23来源:作者:点击数: 标签:
以下主题解释了如何配置单向 SSL 的 WebLogic Workshop Web 应用程序。 通过要求 服务器 向其客户端提供数字证书,以及对在服务器和客户端之间传递的数据进行加密,单向 SSL 可以在 Web 服务器和客户端之间设置 安全 连接。单向 SSL 的主要目标是由加密提供

   

以下主题解释了如何配置单向 SSL 的 WebLogic Workshop Web 应用程序。

通过要求服务器向其客户端提供数字证书,以及对在服务器和客户端之间传递的数据进行加密,单向 SSL 可以在 Web 服务器和客户端之间设置安全连接。单向 SSL 的主要目标是由加密提供的完整性和保密性,以及由数字证书提供的服务器身份验证。请注意,客户端身份验证本身不是单向 SSL 的目标。要获得客户端的身份验证,应为单向 SSL 补充基本身份验证,或配置双向 SSL 的 Web 资源。

使用单向 SSL 确保 Web 资源的安全

要使用单向 SSL 确保 Web 资源的安全,必须 (1) 从可信任颁发机构获取数字证书或创建您自己的数字证书,(2) 确保为 WebLogic Server 启用了 SSL,(3) 将 Web 资源定义为受保护的 Web 资源,(4) 通过启用 HTTPS 的服务器端口公开该 Web 资源,以及 (5) 配置 WebLogic Server,以使用该 Web 资源对数据流进行加密。

1. 数字证书

要在生产服务器上启用 SSL,首先需要从可信任的第三方证书颁发机构获取私钥/公钥对。有关详细信息,请参阅 WebLogic Server 8.1 文档中的 Obtaining Private Keys, Digital Certificates and Trusted Certificate Authorities。(或者,也可生成您自己的数字证书来提供给客户端,但大多数 Web 应用程序都使用从第三方获取的数字证书。)还需要在 WebLogic Server 中的相应仓库中存储数字证书。有关详细信息,请参阅 WebLogic Server 8.1 文档中的 Storing Private Keys, Digital Certificates, and Trusted Certificate Authorities。

2. 配置 WebLogic Server

默认情况下,WebLogic Server 被配置为支持单向 SSL。有关详细信息,请参阅 WebLogic 8.1 文档中的 Configuring SSL。

3. 定义受保护的 Web 资源

通过在 Web 资源(如 Web 应用程序或 Web Service)上放置安全约束,可以将该资源定义为受保护的资源。安全约束由 web.xml 配置文件中的 XML 元素指定,该 web.xml 配置文件位于 WEB-INF 目录中。

Web 资源是根据其所在的 URL 进行定义的。在以下示例中,Web Service HelloWorldSecure.jws 被定义为受保护资源,因为该服务所在的 URL(“/security/transport/helloWorldSecure/HelloWorldSecure.jws/”) 被定义为受保护对象。

Security Constraint for HelloWorldSecure.jws

HelloWorldSecure.jws

受 SLL 保护的 Web Service。



/security/transport/helloWorldSecure/HelloWorldSecure.jws/*

GET

POST



如果希望保护 HelloWorldSecure Web Service 所在的整个文件夹,需要指定下列 URL。

/security/transport/helloWorldSecure/*

有关定义受保护 Web 资源的详细信息,请参阅定义受保护的 Web 资源。

4. 通过启用 HTTPS 的端口公开 Web 资源

通过编辑 wlw-config.xml 文件(位于 Web 资源所在的 WebLogic Workshop 项目的 WEB-INF 目录中)或应用程序 META-INF 目录中的 wlw-runtime-config.xml 文件,可以将 WebLogic Server 配置为通过启用 HTTPS 的端口公开 Web 资源。请注意,一般推荐使用 wlw-runtime-config.xml 文件,而不要使用 wlw-config.xml 文件,因为在 wlw-config.xml 文件中指定的值将被硬编码到 EAR 文件,而该 EAR 文件将被部署到生产服务器上,而且不能在运行时被替代。

下面的示例 wlw-config.xml 文件显示了如何在 HTTPS 端口(在本例中由 元素指定为端口 7002)上公开 HelloWorldSecure Web Service。请注意,这不会强制资源仅使用 HTTPS 端口进行公开。用户可以通过由 元素指定的默认端口和 HTTPS 端口访问该资源。通过在资源的安全约束中放置 元素,可以强制使用 HTTPS 端口(请参阅下面的步骤 5)。

7001

7002



security.transport.helloWorldSecure.HelloWorldSecure

https

要在启用不同协议的端口上公开不同的服务,请添加具有 和 子元素的 元素。下面的示例 wlw-config.xml 文件指定 HelloWorld Web Service 应使用启用 HTTP 的端口,还指定 Web Service HelloWorldSecure 应使用启用 HTTPS 的端口。

7001

7002



HelloWorld

http





security.transport.helloWorldSecure.HelloWorldSecure

https

5. 确保加密所传输的数据

要使用受保护的 Web Service 加密数据流,请在安全约束中包括具有 CONFIDENTIAL 值的 元素。这将强制使用在上述步骤 4 中指定的 HTTPS 端口。





Security Constraint for HelloWorldSecure.jws

BasicAuthentication.jws

A web service secured by SLL and basic authentication



/security/transport/helloWorldSecure/HelloWorldSecure.jws/*

GET

POST



CONFIDENTIAL 

有关 web.xml 配置文件中所用语法的详细信息,请参阅 WebLogic 8.1 文档中的 web.xml Deployment Descriptor Elements。请特别注意有关 的文档。

原文转自:http://www.ltesting.net