J2EE平台安全

2008-02-23 09:38:06来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

安装并配置SSL支持

什么是Secure Socket Layer技术?

Secure Socket Layer(SSL)是一种允许Web浏览器和Web服务器基于一种安全的连接方式连接起来的技术。在这种安全的连接中,要传输的数据在被传输前会被加密,然后在接到后立刻在处理数据前解密。浏览器和服务器都会在发送任何数据前,加密所有的传输内容。SSL主要处理下面的重要安全事项。

l 认证

在你的初始尝试与Web服务器基于安全连接的通讯时,服务器将给你的Web浏览器一个以服务器证书形式存在的证书集合。这个证书的目的就是验证这个site是谁,并且他声称是什么。在某些情况下,服务器可能需要一个关于客户端是谁,他声称是什么的证书(这被称作客户端的认证)。

l 机密性

当数据在互联网上客户端和服务器间传送时,第三方能够看见并截获数据。SSL的应答是被加密的,所以数据不会 被第三方解密,可以保持机密性。

l 完整性

当数据在互联网上客户端和服务器之间传送时,第三方可以看见并截获数据。SSL有助于保证数据不会再传输过程中被第三方修改。

要在你的独立Web服务器上安装并配置SSL支持,你需要以下的构件。如果你正在使用J2EE1.4 应用服务器,那么SSL支持就已经被提供了。如果你正在使用一个别的Web服务器,那么参考你的产品文档。

l 服务器证书密钥商店(参考Setting Up Digital Certificates,page 933)。

l HTTPS连接器(参考配置SSL连接器,page 939)。

为了验证SSL支持已经可用,参考验证SSL Support(page 939)。

安装数字证书

注意:J2EE1.4应用服务器的数字证书已经被产生并且可以在目录<J2EE_HOME>/domains/domain1/config中找到。

为了使用SSL,J2EE服务器对于每个外在接口或者IP地址必须有个关联的证书,这可以达到安全的连接。这种设计的原理是一个服务器必须提供某种合理的关于此保证的拥有者是你认为的谁的保证,特别是在接收某些敏感的信息之前。认为证书是一种对于网络地址的数字的司机驾照的想法是有用的。它表明了这个site是与哪个公司联系起来的,同时说明了关于site所有者或者administrator的一些基本联系信息。

数字证书时被它的拥有者加密签名的,并且很难被其他人伪造。对于包含在电子商务里的站点,或者其他一些身份的认证十分重要的商业交易,证书可以从著名的证书授权机构(CA)比如Verisign或者Thawte购买。

如果认证不是真的重要,比如如果administrator只是简单的想确认被服务器传输和接收的数据是私有的,并且不能被监听这次连接的某个人偷窃,你可以简单的通过使用自己签名的证书来节省购买CA证书的时间和花费。

SSL使用公钥加密,这是基于密钥对的。密钥对包括一个公钥和一个私钥。如果数据用一个钥匙加密,那么它只能用另一个钥匙解密。这一特性是在传输中建立信任和秘密的基础。举个例子,使用SSL,服务器计算了一个值并使用私钥加密这个值。加密过的值称为数字签名。客户端使用服务器的公钥解密这个加密的值,并把这个值和自己的计算值比较。如果这两个值匹配,客户端就可以信任这个签名是认证过的,因为只有私钥可以用来产生这样一个签名。

数字证书被用于在HTTPS协议中认证Web客户端。大多数Web服务器的HTTPS服务不会运行,除非数字证书被安装了。使用下面的大概的过程来建立能够被你的Web服务器用来激活SSL的数字证书。

一个可以被用来建立数字证书的工具是keytool,它是个J2EE1.4应用服务器自带的密钥和证书管理工具。它使用户可以管理他们自己的公钥私钥对和相关的证书,为了在self-authentication(用户要向别的用户或者服务认证自己)或者数据完整性和用数字签名的认证服务时使用。它也允许用户隐藏他们联系人的公钥(以证书的方式)。要更好的理解key-tool和公钥加密,请阅读keytool文档,URL如下:

http://Java.sun.com/J2SE/1.4.2/docs/tooldocs/solaris/key-tool.html

创建服务器证书

服务器的证书已经为J2EE1.4应用服务器创建了。证书可以在<J2EE_HOME>/domains/domain1/config/目录下找到。服务器证书在keystore.jks中。客户端证书在cacerts.jks文件中。

如果必要,你可以用keytool来产生证书。Keytool在一个与keystore对应的文件中存储了密钥和证书。Keystore是一个存储用于确认客户端和服务器的证书的仓库。典型的,一个keystore包含一个客户端或者一个服务器的身份。默认的keystore把keystore当作一个文件。它用一个密码保护私钥。

keystore是在你运行keytool的目录下创建的。这个目录可以是应用所在的目录,也可以是许多应用共用的目录。

为了创建一个服务器证书,

1.创建keystore。

2.从keystore中导出证书。

3.签名证书。

4.把证书导入一个trust-store中。Trust-store是指一个用于检验证书的证书仓库。一个trust-store典型的包含多于一个证书。一个使用trust-store基于SSL的相互认证的例子将在Example:Client-Certificate Authentication over HTTP/SSL with JAX-RPC(page 950)中讨论。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:shark工作流文档翻译活动-工具代理

下一篇:javadoc 制作api文档