在GlassFish v2中使用SSL

大多数企业应用程序都需要在安全环境中运行。传输层安全(TLS)/安全套接 层(SSL)是一种点对点的安全传输机制,可用于验证客户端和服务器之间交换的 消息,并确保消息的完整性和机密性。TLS/SSL(或在本文中,就是“SSL”)可 满足大多数企业应用环境的安全要求,因此得到了广泛应用。

无论如何参与 SSL 保护的信息交换,服务器都需要成为 SSL 服务器。本文将 介绍如何使 GlassFish v2 应用程序服务器成为 SSL 服务器。

为了理解这些步骤,您需要理解 SSL 中的一些基本概念(比如密钥和证书) ,并对 GlassFish v2 中的 profile(配置)有所了解。

密钥和证书

密钥和证书是 SSL 中的两个重要概念。密钥用于在客户端和服务器之间的传 输中建立信任和隐私。SSL 使用公钥加密法,这种加密法是基于密钥对的。密钥 对包含一个公钥和一个私钥。如果用其中一个密钥加密了数据,则只能用密钥对 中的另外一个密钥来解密。

证书用于验证。要使用 SSL,服务器必须拥有其可以连接的每个客户端 IP 地 址的相关证书。证书标识了服务器站点的所有者并提供相关的信息。证书由其所 有者进行了加密数字签名。对于验证非常重要的网站,可以从值得信赖的知名证 书认证机构(CA)购买。但是,如果验证并不特别重要,网站也可以使用自签名 的证书。

GlassFish v2 配置

GlassFish v2 支持多种配置。每个配置都预置了配置参数,用于应用程序服 务器为某种特定用途对其进行优化。它支持三种配置:developer(开发人员)、 cluster(集群)和enterprise(企业)。

开发人员配置可优化 GlassFish v2 适用于开发环境。这表示配置参数支持类 似快速启动的目标,但是不支持登录或会话复制。集群配置将设置支持集群创建 和会话复制的配置参数。集群是一组可作为单个逻辑实体管理和监视的 GlassFish v2 实例。企业配置可优化 GlassFish v2 适用于生产环境。它支持登 录和其他安全相关的功能。

使 GlassFish v2 应用程序服务器成为 SSL 服务器

使 GlassFish v2 成为 SSL 服务器的步骤取决于应用服务器的配置。首先让 我们来查看一下使用开发人员配置时的过程。然后再查看使用企业配置时的过程 。

使用开发人员配置

再次提醒:GlassFish v2 配置预置了某种特定使用类型的配置参数。这些参 数中有一种是 Security Store,它可以确定如何存储安全和信任相关的事物,比 如证书和密钥。对于开发人员配置,Security Store 值设置为 JKS。在本例中, 服务器的证书和密钥存储在 Java keystore 文件(keystore.jks)中,而信任的 CA 签发的证书存储在证书文件(cacerts.jks)中。

安装 GlassFish v2 时,它会创建一个默认的自签名证书作为服务器证书。但 是,如果验证对您的网站非常重要,则您需要将该自签名证书替换为由 CA 签发 的数字签名证书。本节将介绍如何替换该自签名证书、如何从 CA 获得服务器证 书以及如何将服务器证书导入到 keystore。

以下步骤需要使用 keytool,它是一种密钥和证书管理工具。Keytool 在多种 版本的 Java Platform 、Standard Edition(Java SE)Development Kit(jdk )中均可获得。但是,Java SE 6 在 keytool 中添加了一些必要的功能。以下教 程基于 jdk 6 版本的 keytool。有关 keytool 的详细信息,请参阅 JDK Tools and Utilities。

应用服务器使用开发人员配置时,可采用以下步骤使 GlassFish v2 成为 SSL 服务器。

使用以下命令删除默认的自签名证书(注意:出于格式目的,以下及以后步骤 中的命令分多行显示):

keytool -delete -alias s1as -keystore keystore.jks

-storepass

其中,<store_passwd> 是 keystore 的密码,例如 mypass。注意: s1as 是 GlassFish v2 keystore 的默认别名。

使用以下命令为应用程序服务器生成新密钥对:

keytool -genkeypair -keyalg

-keystore keystore.jks -validity -alias s1as

其中,<key_alg> 是用于生成密钥对的算法,例如 RSA。 <val_days> 为证书的有效天数,例如 365。

时间: 2025-01-02 03:39:13

在GlassFish v2中使用SSL的相关文章

使用GlassFish v2、Apache Maven 2和NetBeans IDE 6.0构建EJB 3

软件需求 要创建EJB 3.0应用程序构建环境,需要使用以下项目: GlassFish v2 b58d NetBeans IDE 6.0 Nightly from 03.09.2007 Apache Maven 2.0.7 Mevenide2-Netbeans插件(NetBeans.Maven2项目支持) 假定以上软件已全部安装并且运行正常.软件安装的方法为将文件解压到所选目录中. 要安装NetBeans Maven2项目支持插件,需要启动NetBeans IDE 6.0.接下来,选择 Tool

Nginx服务器中关于SSL的安全配置详解_nginx

 本文向你们展示如何在nginx的web服务器上设置更强的SSL.我们是通过使SSL无效来减弱CRIME攻击的这种方法实现.不使用在协议中易受攻击的SSLv3以及以下版本并且我们会设置一个更强的密码套件为了在可能的情况下能够实现Forward Secrecy,同时我们还启用HSTS和HPKP.这样我们就有了一个更强.不过时的SSL配置并且我们在Qually Labs SSL 测试中得到了A等级. 我们在nginx的设置文档中如下编辑 复制代码 代码如下: /etc/nginx/sited-ena

用GlassFish v2替换Tomcat 5.x

1. 背景 用了很多年的Tomcat, 无论开发环境还是生产环境, 应该说, 大家对它还是基本满意的.不过, 也不是一点问题没有. 从开发人员的角度来说, Tomcat主要的缺点就是较弱的热部署(hot deploy)能力. 修改一个Java类, 保存后, Tomcat会重新加载这个类, 但不久就要重新启动Tomcat才能继续开发. 在企业关键应用的场景下, 若发生急迫的程序缺陷更正, 让众多的用户停止手头的工作, 等待服务器重新启动, 显然十分不便. 类似RubyOnRails的技术框架, 其

在GlassFish v3中整合Rails和java EE

Rails和java EE的整合 下文将介绍一下在GlassFish v3上的Rails和java EE的整合.GlassFish v3是GlassFish V2的下一个版本,其关注的重点是模块化和使得运行非Java EE的容器和模块成为可能. 下面是详细的细节说明: 1. 使用JRuby 1.1(安装Rails),按照如下步骤创建一个Rails应用"railsee3": ~/testbed/jruby-1.1/samples/rails >../../bin/jruby -S

在 Tomcat 中配置 SSL/TLS 以支持 HTTPS

本件详细介绍了如何通过几个简单步骤在 Tomcat 中配置 SSL/TLS .使用 JDK 生成自签名的证书,最终实现在应用中支持 HTTPS 协议. 生产密钥和证书 Tomcat 目前只能操作 JKS.PKCS11.PKCS12 格式的密钥存储库.JKS 是 Java 标准的"Java 密钥存储库"格式,是通过 keytool 命令行工具创建的.该工具包含在 JDK 中.PKCS12 格式一种互联网标准,可以通过 OpenSSL 和 Microsoft 的 Key-Manager 来

java-GoogleMaps V2 中的Gps LocationListenser

问题描述 GoogleMaps V2 中的Gps LocationListenser 我想知道googlemaps LatLng 和 Location类中的关系,它们是否可以相互转换呢? 我用的 GoogleMaps v2 方法.在程序中如何使用 GPS 在 maps 中定位? 解决方案 你可以在 GoogleMap 中调用 setMyLocationEnabled(true),然后再定期的调用 getMyLocation().否则就调用 setMyLocationEnabled(true).

如何在CentOS 7中使用SSL/TLS加固FTP服务器进行安全文件传输

在一开始的设计中,FTP(文件传输协议)就是不安全的,意味着它不会加密两台机器之间传输的数据以及用户的凭据.这使得数据和服务器安全面临很大威胁. 在这篇文章中,我们会介绍在 CentOS/RHEL 7 以及 Fedora 中如何在 FTP 服务器中手动启用数据加密服务;我们会介绍使用 SSL/TLS 证书保护 VSFTPD(Very Secure FTP Daemon)服务的各个步骤. 前提条件: 你必须已经在 CentOS 7 中安装和配置 FTP 服务 . 在我们开始之前,要注意本文中所有命

如何在 CentOS 7 中使用 SSL/TLS 加固 FTP 服务器进行安全文件传输

在一开始的设计中,FTP(文件传输协议)就是不安全的,意味着它不会加密两台机器之间传输的数据以及用户的凭据.这使得数据和服务器安全面临很大威胁. 在这篇文章中,我们会介绍在 CentOS/RHEL 7 以及 Fedora 中如何在 FTP 服务器中手动启用数据加密服务:我们会介绍使用 SSL/TLS 证书保护 VSFTPD(Very Secure FTP Daemon)服务的各个步骤. 前提条件: 你必须已经在 CentOS 7 中安装和配置 FTP 服务 . 在我们开始之前,要注意本文中所有命

Android开发使用Netty的TCP连接中使用SSL加密

  1 Introduction   数据安全在网络通信中是非常重要的一个方面.为了支持 SSL/TLS,Java 提供了 javax.net.ssl包下的类SslContext 和 SslEngine .在Netty框架下,I/O数据在ChannelPipeline中被管道中的ChannelHandler处理并转发给下一个ChannelHandler.自然而然地,Netty也提供了ChannelHandler的实现SslHandler来支持SSL, 有一个内部 SslEngine 做实际的工作