`
zhbwww
  • 浏览: 37508 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

配置支持SSL的Tomcat

    博客分类:
  • java
阅读更多
转自http://www.wangchao.net.cn/bbsdetail_583432.html
  配置支持SSL的Tomcat 笔者:何钢一、配置环境1.1 Tomcat简介Tomcat是Apache Jakarta的子项目之一,作为一个优秀的开源web应用服务器,全面支持jsp1.2以及servlet2.3规范。因其技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的web应用服务器。
  1.2 SSL(Server Socket Layer)简介在网络上信息在源-宿的传递过程中会经过其它的计算机。一般情况下,中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄露。由于Internet和Intranet体系结构的原因,总有某些人能够读取并替换用户发出的信息。随着网上支付的不断发展,人们对信息安全的要求越来越高。因此Netscape公司提出了SSL协议,旨在达到在开放网络(Internet)上安全保密地传输信息的目的,这种协议在WEB上获得了广泛的应用。 之后IETF(www.ietf.org)对SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从技术上讲,TLS1.0与SSL3.0的差别非常微小。
  1.3 SSL工作原理SSL协议使用不对称加密技术实现会话双方之间信息的安全传递。可以实现信息传递的保密性、完整性,并且会话双方能鉴别对方身份。不同于常用的http协议,我们在与网站建立SSL安全连接时使用https协议,即采用https://ip:port/的方式来访问。
  当我们与一个网站建立https连接时,我们的浏览器与Web Server之间要经过一个握手的过程来完成身份鉴定与密钥交换,从而建立安全连接。具体过程如下:
  用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。 服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服务器的证书。如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。 客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那么继续。 客户端浏览器为本次会话生成pre-master secret,并将其用服务器公钥加密后发送给服务器。 如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。 如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret。 客户端与服务器均使用此master secret生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度。 客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客户端已经完成本次SSL握手。 服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服务器已经完成本次SSL握手。 本次握手过程结束,会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。1.4 所需软件包Tomcat 4.0.2
  用途:Web Server。
  下载:http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.3/bin/ JSSE 1.0,2
  用途:用来产生Tocmcat使用的秘钥对(keystore)。
  下载: http://java.sun.com/products/jsse/ Openssl 0.9.9.6
  用途:用来产生CA证书、签名并生成IE可导入的PKCS#12格式私钥。
  下载:http://www.openssl.org/二 配置步骤2.1 建立自己的CA证书1.在openssl的apps目录下建立自己的CA目录,例如:mageCA
  mkdir mageCA
  2.生成CA密钥
  openssl genrsa -out mageCA/ca-key.pem 1024
  genrsa [产生密钥命令] –out[密钥文件输出路径] 1024 [密钥位数]
  3.生成待签名的证书
  openssl req -new -out mageCA/ca-req.csr -key mageCA/ca-key.pem
  req[产生证书命令]-new[新生成]-out[证书文件输出路径]-key[私钥文件路径]
  4.用CA私钥自签名
  openssl x509 -req -in mageCA/ca-req.csr -out mageCA/ca-cert.pem -signkey mageCA/ca-key.pem -days 365
  x509[签发x509证书命令]-req[输入待签发证书]-in[输入待签发证书文件路径]-out[产生x509证书文件输出路径]-signkey[自签发密钥文件路径]-days[证书有效期]–CA[签发跟证书]-Cakey[根证书密钥文件] –Cacreateserial[创建序列号]
  [注] 将自动生成的ca-key.srl文件拷贝到创建的CA目录下.。
  2.2 配置Tomcat 4.X2.2.1 建立服务器证书[注] 在本文中用符号"%JDK_HOME%"来表示JDK的安装位置,用符号"%TCAT_HOME%" 表示Tomcat的安装位置。
  1. 建立工作目录
  在%JDK_HOME%的bin目录下建立自己的server目录,例如:server
  mkdir server
  2. 生成server密钥对
  %JDK_HOME%/bin/keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass changeit -storepass changeit -dname "cn=localhost, ou=department, o=company, l=Beijing, st=Beijing, c=CN" -keystore server/server_keystore
  -genkey[产生密钥对]-alias[密钥对别名]-validity[密钥有效期]-keyalg[密钥算法参数]-keysize[密钥位数]-keypass[密钥保护密码]-storepass[存储密码]-dname[别名相关附加信息]-keystore[密钥存储文件路径]
  [注] -alias后的tomcat_server是密钥对的名字可替换为自己需要的名字;
  -keypass与-storepass后的changeit为保护密码必须6位,将其替换为你的密码即可;
  -dname为包含的server信息。其中cn是服务器的名字一定要与WEB服务器中设置的一样。
  3. 生成待签名证书
  %JDK_HOME%/bin/keytool -certreq -alias tomcat_server -sigalg MD5withRSA -file server/server.csr -keypass changeit -keystore server/server_keystore -storepass changeit
  -certreq[产生待签名证书]-alias[证书别名]-sigalg[证书算法参数]-file [产生文件输出路径]-keypass[密钥保护密码]-keystore[存储文件路径]-storepass[存储密码]
  4. 用CA私钥签名
  openssl x509 -req -in server/server.csr -out server/server-cert.pem -CA mageCA/ca-cert.pem -CAkey mageCA/ca-key.pem -days 365
  [注] 先将生成的server.csr文件ftp到linux上openssl的目录下的server子目录中,ftp的传输模式应设为bin模式,以下同。
  2.2.2 将CA根证书和服务器证书导入Tomcat1. 导入CA根证书
  将CA根证书(ca-cert.pem)ftp到Java工作目录下的ca子目录中
  %JDK_HOME%/bin/keytool -import -v -trustcacerts -storepass changeit -alias my_ca_root -file ca/ca-cert.pem -keystore %JDK_HOME%/jre/lib/security/cacerts
  -import[导入命令]-v –trustcacerts[导入信任证书] –storepass[存储密码]-alias[证书别名]-file[证书文件路径]-keystore[导入文件路径]
  [注] 此处的-storepass为默认的“changeit”。-alias为CA根证书的别名。
  2. 导入服务器证书
  将服务器证书(server-cert.pem)ftp到Java工作目录下的server子目录中。
  %JDK_HOME%/bin/keytool -import -v -trustcacerts -storepass changeit -alias tomcat_server -file server/server-cert.pem -keystore server/server_keystore
  [注] 此时的-storepass为生成证书时输入密码。-alias为服务器证书的别名。
  3. 查看证书
  查看CA证书
  keytool -list -keystore %JDK_HOME%/jre/lib/security/cacerts
  查看服务器证书
  keytool -list -keystore server/server_keystore
  2.2.3 修改Tomcat的配置文件修改conf目录下server.xml文件找到以下内容去掉其注释并修改。
  <!-- Define an SSL HTTP/1.1 Connector on port 8443 -->
   <Connector className="org.apache.catalina.connector.http.HttpConnector"
   port="8443" minProcessors="5" maxProcessors="75"
   enableLookups="false"
   acceptCount="10" debug="0" scheme="https" secure="true">
   <Factory className="org.apache.catalina.net.SSLServerSocketFactory"
   clientAuth="true" protocol="TLS"
  keystoreFile="c:/jakarta-tomcat-4.0-b1/conf/server_keystore" keystorePass="780608"
  />
   </Connector>
  然后把文件server/ server_keystore复制到目录%TCAT_HOME%\conf\下
  2.3 配置IE客户端2.3.1 建立Client证书1. openssl的apps目录下建立自己的Client目录,例如:client
  2. 生成Client密钥对
  openssl genrsa -out client/ client –key.pem 1024
  3. 生成待签名的证书
  openssl req -new -out client/ client-req.csr -key client/ client-key.pem
  4. 用CA私钥签名
  openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey c lient/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 365
  5. 生成Client端可以导入的个人证书
  openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12
  pkcs12[生成PKS12格式证书命令]-export[导出文件]-clerts[仅导出client证书]-in[输入的client证书文件路径]-inkey[client证书密钥文件路径]-out[导出PKS12格式文件路径]
  2.3.2 将CA证书与client证书导入IE1. 导入CA根证书
  将已经ftp到Java工作目录下ca子目录中的ca-cert.pem改名为ca-cert.cer;
  在client端的IE中使用<工具>,< Internet选项>,<内容>,<证书>,<导入>,把我们生成的CA根证书导入,使其成为用户信任的CA。
  2. 导入client证书
  将client证书(client.p12)ftp到Client端,把client.p12导入到client端的IE中作为client证书,导入过程同上
  三 用IE浏览器使用SSL协议访问Tomcat1. 执行%TCAT_HOME%/bin/startup.bat启动Tomcat 4.x;
  2. 在IE浏览器的地址栏中输入https://localhost:8443,如果前面的操作都正确,应该可以看到Tomcat的欢迎页面。同时状态栏上的小锁处于闭合状态,表示您已经成功地与服务器建立了要求客户端验证的SSL安全连接。
分享到:
评论

相关推荐

    关于tomcat 的ssl配置

    Tomcat 是一个流行的 Web 服务器软件,它支持 SSL/TLS 加密协议,以确保数据传输的安全性。在本文中,我们将详细介绍 Tomcat 的 SSL 配置步骤和过程。 一、生成密钥对 在 Tomcat 中,需要生成密钥对以用于 SSL ...

    tomcat 配置ssl加密通讯

    tomcat 配置ssl加密通讯tomcat 配置ssl加密通讯tomcat 配置ssl加密通讯

    nginx和tomcat配置SSL和负载均衡配置

    ### Nginx 和 Tomcat 配置 SSL 与负载均衡详解 #### 一、Nginx 支持 SSL 的确认方法 Nginx 支持 SSL 加密是现代 Web 服务器的基本需求之一,确保数据传输的安全性。首先,我们需要确认当前安装的 Nginx 版本是否...

    配置tomcat服务器支持SSL

    配置 Tomcat 服务器支持 SSL 配置 Tomcat 服务器支持 SSL 是为了开启 Tomcat 的安全认证通道,从而确保数据的安全传输。在某些项目中,可能需要使用 SSL 加密来保护数据的安全。 首先,需要准备好生成的证书...

    ssl汇总ssl tomcat openssl

    5. **SSL/TLS协议版本与套件**:Tomcat允许配置支持的SSL/TLS协议版本,例如`SSLProtocol`属性可以设置为`TLSv1.2`或`TLSv1.3`。同时,还可以通过`ciphers`属性限制支持的加密套件,以提高安全性。 6. **性能优化**...

    Tomcat 配置SSL完美 https可以正常使用 小程序调用

    Tomcat 配置SSL完美 https可以正常使用 小程序调用Tomcat 配置SSL完美 https可以正常使用 小程序调用Tomcat 配置SSL完美 https可以正常使用 小程序调用

    SSL配置手册-tomcat

    ### SSL配置手册-Tomcat:双向SSL认证及证书生成指南 #### 一、SSL与Tomcat简介 在深入了解如何在Tomcat服务器上配置SSL之前,我们先简要回顾一下SSL和Tomcat的基本概念。 - **SSL (Secure Sockets Layer)**:是...

    Tomcat6配置SSL

    Tomcat 6支持SSL配置,可以通过修改`server.xml`文件来启用。这个文件通常位于Tomcat安装目录下的`conf`子目录中。 **三、准备SSL证书** 1. **自签名证书**: 对于测试环境,可以创建自签名证书。使用Java的`...

    如何配置Tomcat以支持SSL

    如何配置Tomcat以支持SSL 博文链接:https://snowyvalley.iteye.com/blog/69964

    tomcat配置ssl教程

    4. **修改Tomcat配置**:打开Tomcat的服务器配置文件`server.xml`,在这个文件中,我们需要添加一个名为`&lt;Connector&gt;`的元素来配置SSL连接器。以下是基本配置示例: ```xml SSLEnabled="true" maxThreads="150...

    SSL/TLS 检测工具以及 tomcat 正向加密配置例子

    本资源包含一个 openssl 工具安装包 Win32OpenSSL-1_1_0c.exe,一个 tomcat 进行配置 ssl 证书、完全 TLS v1.2、完全正向加密的 server.xml、startup.bat 配置文件。关于tomcat 进行配置 ssl 证书、完全 TLS v1.2、...

    tomcat的双向ssl配置

    4. **配置Tomcat**:将生成的服务器证书和私钥导入到Tomcat的 keystore 中,同时设置Tomcat服务器支持客户端认证,这通常需要修改`server.xml`中的`Connector`元素。 5. **DOS脚本**:文件`c_server.bat`, `c_root....

    Tomcat SSL 配置

    通过本文档,可以成功配置 Tomcat 的 SSL 功能,实现 HTTPS 协议的支持。 一、准备工作 为了配置 Tomcat 的 SSL 功能,需要安装 JDK 1.5 或更高版本,并配置 JAVA_HOME 环境变量。此外,还需要安装 tomcat 6 。 ...

    Tomcat5.5配置SSL精简版

    在实际部署中,还需要考虑其他的SSL配置,比如支持不同的加密套件、处理证书链、配置SSL会话缓存等。此外,对于大型或高并发的应用,可能需要优化SSL连接器的参数,如最大线程数、最小空闲线程数等。 通过以上步骤...

    tomcat9 支持国密SSL通道版本,DoubleCA版本

    tomcat支持国密SSL版本,二三十积分太贵了,来个便宜的给兄弟萌 ...2.conf目录修改server.xml ,修改方法百度tomcat支持国密ssl配置 3.bin目录启动tomcat PS:conf下有证书文件,自行DoubleCA申请替换

    Tomcat配置SSL指导

    ### Tomcat配置SSL详解 #### 一、引言 随着互联网技术的发展,数据安全成为企业和个人用户关注的重点。为了确保Web应用的数据传输安全,越来越多的应用采用HTTPS协议来替代传统的HTTP协议。而要实现这一目标,就...

    tomcat支持https配置

    标题中的“Tomcat支持HTTPS配置”是指在Apache Tomcat服务器上启用安全套接层(SSL)协议,以提供加密通信和身份验证。这通常涉及到在Web应用中使用HTTPS(HTTP over SSL/TLS)协议,以保护用户的敏感信息,如登录...

    Tomcat 开启基于https的SSL配置

    Tomcat 开启基于 HTTPS 的 SSL 配置 在互联网时代,安全性问题变得越来越重要,为了保护用户的隐私和数据,越来越多的网站开始使用 HTTPS 协议。Tomcat 作为一个流行的 Java Web 服务器,当然也支持 HTTPS 协议。...

Global site tag (gtag.js) - Google Analytics