在Tomcat中实现https安全链接

SSL, 或者Secure Socket Layer,是一种容许web浏览器和web服务器经过一个安全的链接进行交流的技术。这意味着将被发送的数据在一端被翻译成密码,传送出去,而后在另外一端解开密码,再进行处理。这是一个双向的过程,也就是浏览器和服务器都须要在发送数据以前对它们进行加密。html

  SSL协定的另外一个重要方面是认证(Authentication)。这就是说,在你开始试图经过一个安全链接与一个web服务器交流的时候,这个服务器会要求你的浏览器出示一组证件,经过“鉴定”的方式来证实这就是你所声明的网站。web

  在某些状况下,服务器还会要求你的web浏览器的认证书,证实你就是你所说的那我的。这就是所知的“客户认证”,尽管实际状况中,更多地用在商务-对-商务(B2B)交易,而不是对我的用户。算法

  但大多数有SSL功能的web服务器不要求客户认证(Client Authentication)。浏览器

  证书tomcat

  为了能实施SSL,一个web服务器对每一个接受安全链接的外部接口(IP 地址)必需要有相应的证书(Certificate)。关于这个设计的理论是一个服务器必须提供某种合理的保证以证实这个服务器的主人就是你所认为的那我的。这个证书要陈述与这个网站相关联的公司,以及这个网站的全部者或系统管理员的一些基本联系信息。安全

  这个证书由全部人以密码方式签字,其余人很是难伪造。对于进行电子商务(e- commerce)的网站,或其余身份认证相当重要的任何商业交易,认证书要向你们所熟知的认证权威(Certificate Authority (CA))如VeriSign或Thawte来购买。这样的证书可用电子技术证实属实。实际上,认证权威单位会担保它发出的认证书的真实性,若是你信任发出认证书的认证权威单位的话,你就能够相信这个认证书是有效的。服务器

  在许多状况下,认证并非真正令人担心的事。系统管理员或许只想要保证被服务器传送和接收的数据是秘密的,不会被链接线上的偷窃者盗窃到。庆幸的是,Java提供相对简单的被称为keytool的命令行工具,能够简单地产生“本身签名”的证书。本身签名的证书只是用户产生的证书,没有正式在你们所熟知的认证权威那里注册过,所以不能确保它的真实性。但却能保证数据传输的安全性。socket

  认证也许很重要,也许不重要,彻底决定于网站的须要。ide

  用Tomcat来配置SSL主要有下面这么两大步骤:工具

  1、生成证书

  一、 在命令行下执行:

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

  在此命令中,keytool是JDK自带的产生证书的工具。把RSA运算法则做为主要安全运算法则,这保证了与其它服务器和组件的兼容性。

  这个命令会在用户的home directory产生一个叫作" .keystore " 的新文件。在执行后,你首先被要求出示keystore密码。Tomcat使用的默认密码是" changeit "(全都是小写字母),若是你愿意,你能够指定你本身的密码。你还须要在server.xml配置文件里指定本身的密码,这在之后会有描述。

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

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

  若是一切顺利,你如今就拥有了一个能够被你的服务器使用的有认证书的keystore文件。

  2、配置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

相关文章
相关标签/搜索