SSL, 或者Secure Socket Layer,是一种允许web浏览器和web服务器通过一个安全的连接进行交流的技术。这意味着将被发送的数据在一端被翻译成密码,传送出去,然后在另一端解开密码,再进行处理。这是一个双向的过程,也就是浏览器和服务器都需要在发送数据之前对它们进行加密。
SSL协定的另一个重要方面是认证(Authentication)。这就是说,在你开始试图通过一个安全连接与一个web服务器交流的时候,这个服务器会要求你的浏览器出示一组证件,通过“鉴定”的方式来证明这就是你所声明的网站。
在某些情况下,服务器还会要求你的web浏览器的认证书,证明你就是你所说的那个人。这就是所知的“客户认证”,尽管实际情况中,更多地用在商务-对-商务(B2B)交易,而不是对个人用户。
但大多数有SSL功能的web服务器不要求客户认证(Client Authentication)。
证书
为了能实施SSL,一个web服务器对每个接受安全连接的外部接口(ip 地址)必须要有相应的证书(Certificate)。关于这个设计的理论是一个服务器必须提供某种合理的保证以证明这个服务器的主人就是你所认为的那个人。这个证书要陈述与这个网站相关联的公司,以及这个网站的所有者或系统管理员的一些基本联系信息。
这个证书由所有人以密码方式签字,其他人非常难伪造。对于进行电子商务(e-commerce)的网站,或其他身份认证至关重要的任何商业交易,认证书要向大家所熟知的认证权威(Certificate Authority (CA))如VeriSign或Thawte来购买。这样的证书可用电子技术证明属实。实际上,认证权威单位会担保它发出的认证书的真实性,如果你信任发出认证书的认证权威单位的话,你就可以相信这个认证书是有效的。
在许多情况下,认证并不是真正使人担忧的事。系统管理员或许只想要保证被服务器传送和接收的数据是秘密的,不会被连接线上的偷窃者dao qie到。庆幸的是,java提供相对简单的被称为keytool的命令行工具,可以简单地产生“自己签名”的证书。自己签名的证书只是用户产生的证书,没有正式在大家所熟知的认证权威那里注册过,因此不能确保它的真实性。但却能保证数据传输的安全性。
认证也许很重要,也许不重要,完全决定于网站的需要。
用Tomcat来配置SSL主要有下面这么两大步骤:
一、生成证书
1、 在命令行下执行:
%Java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA
在此命令中,keytool是JDK自带的产生证书的工具。把RSA运算法则作为主要安全运算法则,这保证了与其它服务器和组件的兼容性。
这个命令会在用户的home directory产生一个叫做" .keystore " 的新文件。在执行后,你首先被要求出示keystore密码。Tomcat使用的默认密码是" changeit "(全都是小写字母),如果你愿意,你可以指定你自己的密码。你还需要在server.xml配置文件里指定自己的密码,这在以后会有描述。
2、 你会被要求出示关于这个认证书的一般性信息,如公司,联系人名称,等等。这些信息会显示给那些试图访问你程序里安全网页的用户,以确保这里提供的信息与他们期望的相对应。
3、 你会被要求出示密钥(key)密码,也就是这个认证书所特有的密码(与其它的储存在同一个keystore文件里的认证书不同)。你必须在这里使用与keystore密码相同的密码。(目前,keytool会提示你按ENTER键会自动帮你做这些)。
如果一切顺利,你现在就拥有了一个可以被你的服务器使用的有认证书的keystore文件。
二、配置tomcat
第二个大步骤是把secure socket配置在$CATALINA_HOME/conf/server.xml文件里。$CATALINA_HOME代表安装Tomcat的目录。一个例子是SSL连接器的元素被包括在和Tomcat一起安装的缺省server.xml文件里。它看起来象是这样:
$CATALINA_HOME/conf/server.xml
< -- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
< !--
< Connector
port="8443" minPRocessors="5" maxProcessors="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true";
clientAuth="false" sslProtocol="TLS"/>
-->
Connector元素本身,其默认形式是被注释掉的(commented out),所以需要把它周围的注释标志删除掉。然后,可以根据需要客户化(自己设置)特定的属性。一般需要增加一下keystoreFile和keystorePass两个属性,指定你存放证书的路径(如:keystoreFile="C:/.keystore")和刚才设置的密码(如:keystorePass="123456")。关于其它各种选项的详细信息,可查阅Server Configuration Reference。
在完成这些配置更改后,必须象重新启动Tomcat,然后你就可以通过SSL访问Tomcat支持的任何web应用程序。只不过指令需要像下面这样:https://localhost:8443
分享到:
相关推荐
### 在Tomcat中实现HTTPS安全连接的方法 #### 一、SSL概述 SSL(Secure Socket Layer)是一种用于Web的安全协议,它通过加密数据传输来保护Web通信的安全性。SSL的主要功能是为Web通信提供一个安全通道,确保数据...
为了能实施SSL,一个web服务器对每个接受安全连接的外部接口(IP 地址)必须要有相应的证书(Certificate)。关于这个设计的理论是一个服务器必须提供某种合理的保证以证明这个服务器的主人就是你所认为的那个人。这个...
Java应用服务器Tomcat是Java开发领域中不可或缺的一部分,它是一个开源、轻量级的Web应用服务器,主要用于运行基于Java Servlet和JavaServer Pages(JSP)技术的Web应用程序。由Apache软件基金会开发并维护,Tomcat...
为了实现 Tomcat 应用与 MySQL 数据库的有效交互,本文将详细介绍五种在 Tomcat 中连接 MySQL 的方法,并对每种方法进行深入分析,帮助开发者根据实际情况选择最适合的方式。 #### 方法一:将 MySQL 驱动放置于 ...
本篇文章将详细探讨如何在Java Web项目中配置Tomcat连接池以及涉及的相关知识点。 首先,我们需要了解什么是连接池。连接池是一种在应用程序启动时预先创建并维护一定数量的数据库连接的机制,当应用程序需要访问...
- Apache Tomcat是一款开源的Java Servlet容器,它实现了Java EE的Web应用服务器部分,尤其是Servlet和JSP规范。`apache-tomcat-7.0.88-windows-x64.zip`是Tomcat 7.0.88的64位Windows版本,适合运行在Windows操作...
Tomcat 连接池配置是 Web 应用程序中一个非常重要的组件,它负责管理和维护数据库连接,确保数据访问的高速和安全性。本文将详细介绍 Tomcat 连接池配置的步骤和原理,帮助读者快速掌握 Tomcat 连接池的使用。 一、...
书中会探讨Tomcat的线程池管理、连接器配置、内存管理等方法,帮助开发者提升应用的响应速度和并发处理能力。 5. **安全与监控**:安全性和监控对于任何Web应用都至关重要。书中会介绍如何在Tomcat中实现用户认证、...
在Java的安全模型中,每个Java应用运行在一个特定的安全上下文中,这个上下文由一系列的安全策略定义,包括哪些网络地址可以连接。在Linux的Tomcat环境中,这些策略通常体现在`java.policy`文件中。 首先,我们尝试...
Java Tomcat 7.0 32位是一个轻量级且高效的Web服务器和Servlet容器,主要用作Java应用的运行平台。它免除了传统安装过程,提供了便携式的使用方式,使得开发者和系统管理员能够在任何支持32位操作系统的计算机上快速...
Java和Tomcat源码是两个重要的软件开发领域中的核心组件,它们对于理解Web应用程序的运行机制和提升开发者技能至关重要。Java是一种广泛使用的编程语言,以其跨平台性、面向对象特性和丰富的类库闻名。而Tomcat则是...
Java Tomcat是一款流行的开源Web服务器和Servlet容器,主要用于运行Java应用程序和JavaServer Pages(JSP)。这个"java_tomcat安装包.rar"包含了安装和配置Java Tomcat所需的所有必要文件。Tomcat是Apache软件基金会...
在企业级应用中,数据库的安全性尤为重要。其中,数据库连接池作为应用程序与数据库之间的桥梁,扮演着关键角色。然而,当数据库的用户名和密码直接硬编码在配置文件(如Tomcat的`server.xml`)中时,这些敏感信息...
通过本文介绍的方法,可以在Eclipse中顺利地配置和使用Tomcat服务器,从而实现Web应用程序的快速部署和测试。此外,不同的发布方式提供了多样化的选择,开发者可以根据实际情况灵活选择最适合的方式。
Tomcat是一款轻量级的Java应用服务器,广泛用于部署Java Web应用程序,包括WebService。 在Java中实现WebService,主要依赖于SOAP(Simple Object Access Protocol)和WSDL(Web Services Description Language)。...
接着,在Java代码中连接到数据库,执行SQL语句进行插入、查询等操作。 在实际项目中,我们会使用诸如Hibernate这样的ORM框架来简化数据库操作,但这里为了简化,我们可以直接使用JDBC API。 最后,我们需要将整个...
在Tomcat中部署Web应用通常涉及到将应用部署到`webapps`目录下。 - **注意事项**: - 监控应用时,如果需要连接数据库,确保配置了正确的数据库驱动和连接信息。 - 检查`webapps`目录下的应用是否包含了所有必需...
本文将详细介绍如何配置MySQL与Tomcat的连接池,以便在Java应用程序中实现优化的数据交互。 首先,我们需要理解连接池的概念。连接池是一种管理数据库连接的机制,它预先创建并维护一定数量的数据库连接,当应用...