`

tomcat 配置 ssl

阅读更多
摘自 http://tomcat.jaxwiki.org/ssl-howto.html

1、检查你是否需要下载 JSSE
Java 1.4或更新的版本已经包括了JSSE。如果你使用 1.4或更新版本,你不需要另外下载JSSE。你可以跳过本节

从下面的网站下载Java Secure Socket Extensions (JSSE) 版本 1.0.3或更新版。 http://java.sun.com/products/jsse/.

在扩展这个软件包后,有两种方法让Tomcat可以使用它(选择其中之一):

通过把所有这三个JAR文件(jcert.jar , jnet.jar , 和 jsse.jar)复制到$JAVA_HOME/jre/lib/ext 目录中去,让JSSE成为 安装好的扩充目录。
产生一个新的环境变量JSSE_HOME,让它包含绝对路径,指向你拆装(unpacked) JSSE二进制分布的目录。

2、产生 Keystore
Tomcat 现在只支持 JKS或PKCS12 格式的keystores. JKS格式是 Java 的标准 KeyStore格式,它可以用 Java 的 keytool 来产生。这个工具在 Java 的 bin 目录里。 PKCS12 格式时互联网的标准,可以用 OpenSSL 和微软的 Key-Manager来修改。

To import an existing certificate into a JKS keystore, please read the documentation (in your JDK documentation package) about keytool. Note that openssl often adds a readable comments before the key, keytooldoes not support that, so remove the openssl comments if they exist before importing the key using keytool.

使用OpenSSL把一个现存的被你自己CA签署的认证书输入到PKCS12 keystore里面,你会执行象这样的一个命令:

  
openssl pkcs12 -export -in mycert.crt -inkey mykey.key \
                        -out mycert.p12 -name tomcat -CAfile myCA.crt \
                        -caname root -chain

 
  

更深层的情况,请查阅OpenSSL documententation。

要从头开始产生一个新的keystore,包含一个自签的认证书,从一个终端命令行执行下面的命令:

视窗

  
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
 
  

Unix

  
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
 
  

( 应该把RSA运算法则作为主要安全运算法则,这保证了与其它服务器和组件的兼容性。)

这个命令会在用户的home directory产生一个叫做" .keystore " 的新文件。要指定一个不同的位置(location)或文件名,在上面所示的keytool 命令里添加-keystore参数,后面紧跟着你的keystore文件的全部路径名。你还需要把这个新的位置在server.xml配置文件中反映出来,这在后面将有描述。例如:

视窗

  
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA \
-keystore \path\to\my\keystore
 
  

Unix

  
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA \
-keystore \path\to\my\keystore
 
  

在执行这个命令后,你首先被要求出示keystore密码。Tomcat使用的默认密码是 " changeit "(全都是小写字母),如果你愿意,你可以指定你自己的密码。你还需要在server.xml配置文件里指定自己的密码,这在以后会有描述。

下一步,你会被要求出示关于这个认证书的一般性信息,如公司,联系人名称,等等。这些信息会显示给那些试图访问你程序里安全网页的用户,以确保这里提供的信息与他们期望的相对应。

最后,你会被要求出示密钥(key)密码,也就是这个认证书所特有的密码(与其它的储存在同一个keystore文件里的认证书不同)。你必须在这里使用与keystore 密码相同的密码。(目前,keytool会提示你按ENTER键会自动帮你做这些)。

如果一切顺利,你现在就拥有了一个可以被你的服务器使用的有认证书的keystore文件。

注意: 你的 private key 的密码和 keystore 的密码应该相同。如果不同的话你会得到一下错误信息: java.io.IOException: Cannot recover key 这是一个已知的错误,详细请看: Bugzilla issue 38217

3、Edit the Tomcat Configuration File
最后的步骤是把你的secure socket配置在$CATALINA_HOME/conf/server.xml文件里, $CATALINA_HOME代表你在其中安装Tomcat 5 的目录。一个例子是SSL连接器的<Connector>元素被包括在和Tomcat一起安装的缺省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),所以你需要把它周围的注释标志删除掉。然后,你可以根据需要客户化(自己设置)特定的属性。关于各种选项的详细信息,请查阅Server Configuration Reference 。下面的讨论仅仅涵盖设置SSL通信(communication)时大家最感兴趣的那些属性。

这个port属性(默认值是8443)是 TCP/IP端口数码,Tomcat在其上监听安全连接。你可以把它更改成任何你愿意要的数值(如默认的https通信,数目是443)。不过,在许多操作系统中,要想在比1024小的端口数码上运行Tomcat,需要特殊的设置(它超出了这个文档资料的范围)。

如果你在这里更改端口数值,你还必须更改在non-SSL连接器上的redirectPort 这个属性特定的值。这允许Tomcat自动地redirect那些试图访问有安全限制页面的用户,指明根据 Servlet 2.4 Specification要求,SSL是必需的。

有一些额外的选项被用来配置SSL协定。依赖于你早先怎样配置你的keystore,你也许需要添加或更改下列属性值:

属性 描述
clientAuth 如果你想要Tomcat要求所有的SSL客户在使用这个socket时出示用户认证书,把这个值设定为 true 。如果你想要Tomcat要求出示用户认证书,但是如果没有认证书也可以, 就把这个值设定为want 。
keystoreFile 如果你产生的keystore文件不在Tomcat期望的默认地方(一个叫做.keystore 的文件在Tomcat运行的主目录),就添加这个属性。你可以指定一个绝对路径名称, 或者一个由$CATALINA_BASE环境变量而派生的相对路径名称。 
keystorePass 如果你使用一个不同的keystore(以及认证书)密码,而不是Tomcat期望的密码 (就是changeit),添加这个元素。
keystoreType 如果使用一个PKCS12 keystore的话,就添加这个element。 有效的值是JKS 和 PKCS12 。
sslProtocol 要在这个socket上被使用的加密/解密协定。如果你在使用Sun的JVM,我们不提倡更改 这个值。据报道,TLS协定的IBM's 1.4.1 实现与一些通用的浏览器不兼容。 如果是这样,就使用value SSL 。
ciphers 这个socket允许使用的由逗号分隔开的加密密码列单。默认的情况下,任何可用的密码都允许被使用。
algorithm 可用的X509算法。默认是Sun的实现( SunX509 )。 对于IBM JVMs,你应该使用值 IbmX509。对于其他卖主,查阅JVM文档资料来 找正确的值。
truststoreFile 用来验证用户认证书的TrustStore文件。
truststorePass 访问TrustStore的密码。默认值就是keystorePass的值。
truststoreType 如果你在使用与KeyStore不同格式的TrustStore,添加这个元素。 合法的值是JKS和PKCS12。
keyAlias 如果 keystore 里面有多个 key,你可以为用这个选项为加入的 key 起一个名字。 如果没有指定名字,使用时 keystore 内的第一个 key 将会被使用。 

在完成这些配置更改后,你必须象通常那样重新启动Tomcat,然后你就可以工作了。你应该可以通过SSL访问Tomcat支持的任何web应用程序。例如,试一下下面的指令:

  
https://localhost:8443
 
  

你应该看到通常的Tomcat splash页面(除非你修改过ROOT web应用程序)。如果不行的话,下面的章节包含一些排除故障的提示。




分享到:
评论

相关推荐

    解决tomcat配置ssl错误的解决办法

    解决 Tomcat 配置 SSL 错误的解决办法 在 Tomcat 服务器中配置 SSL 加密连接是非常重要的,然而在 Tomcat 6.0.33 版本中,默认启用了 APR(APR 是通过 JNI 访问的可移植库,可以提高 Tomcat 的性能和伸缩性),这...

    Tomcat配置SSL全过程

    ### Tomcat配置SSL全过程 #### 一、生成密钥库(Keystore) 在开始配置Tomcat使用SSL之前,首先需要创建一个密钥库文件。密钥库文件包含了服务器的私钥以及公钥证书,这对于安全地传输数据至关重要。 1. **打开...

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

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

    tomcat 配置ssl加密通讯

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

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

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

    tomcat配置ssl教程

    以上就是Tomcat配置SSL的基本流程。在实际操作中,你可能还需要考虑其他因素,如证书链的导入、支持HSTS(HTTP Strict Transport Security)以强制浏览器始终使用HTTPS、以及配置Ciphers以确保最佳的安全性和兼容性...

    Tomcat配置ssl证书和根目录修改

    有关于Tomcat配置ssl证书和TOMCAT的根目录修改。然后可以用https+域名直接访问工程。。。。。。。。。。。。。。。。。。。

    Tomcat配置SSL指导

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

    tomcat配置ssl-单点登录(sso).rar

    标题中的“tomcat配置ssl-单点登录(sso)”指的是在Apache Tomcat服务器上配置SSL安全套接层,以及实现单点登录(Single Sign-On, SSO)功能。这是一个涉及网络安全和用户认证的重要主题,主要目标是提高Web应用的...

    Nginx+Tomcat配置SSL双向验证示例

    本资源是一个 CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证配置示例。详细如何配置请参考博客《图文:CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证》,地址是:...

    apache-tomcat配置SSL双向认证

    Apache Tomcat配置SSL双向认证是实现安全通信的重要步骤,尤其对于需要高度安全性的Web应用程序。在本文中,我们将深入探讨如何在Tomcat 6环境中设置SSL双向认证,确保客户端和服务器之间的通信既加密又经过身份验证...

    apache Tomcat配置SSL(https)步骤

    1. **打开Tomcat配置文件** - 打开Tomcat安装目录下的`conf/server.xml`文件。 2. **修改HTTP重定向到HTTPS的端口** - 修改`&lt;Connector&gt;`元素中的`redirectPort`属性值为HTTPS端口,例如443: ```xml ``` 3...

    Tomcat配置SSL双向认证

    ### Tomcat配置SSL双向认证详解 #### 一、SSL双向认证概述 SSL(Secure Sockets Layer,安全套接层)是一种用于确保Web通信安全的技术,它通过加密数据传输来保护信息不被未授权访问。SSL协议的核心是实现客户端与...

    CAS 单点登录,tomcat配置SSL,及资源

    **CAS 单点登录原理与实现** ...通过以上步骤,你可以实现CAS单点登录,并在Tomcat服务器上配置SSL,确保通信安全。同时,正确集成CAS资源,能够让你的应用系统无缝接入CAS认证体系,提升用户体验。

    Apache连接Tomcat配置ssl

    apache和tomcat整合配置 ssl

    tomcat配置SSL

    **Tomcat配置SSL详解** 在互联网安全通信中,SSL(Secure Sockets Layer)和其后续版本TLS(Transport Layer Security)是至关重要的协议,用于保护数据传输的隐私和完整性。SSL/TLS广泛应用于HTTPS协议,确保了...

    关于tomcat 的ssl配置

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

    tomcat 配置ssl 证书

    以下将详细讲解如何在Tomcat中配置SSL证书。 首先,了解SSL证书的基本概念。SSL证书包含了一个公钥和私钥对,用于在客户端(如浏览器)和服务器之间建立安全的加密连接。它通常由权威的证书颁发机构(CA)签发,以...

Global site tag (gtag.js) - Google Analytics