论坛首页 Java企业应用论坛

Tomcat配置成https方式访问(单向认证)

浏览 15780 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-11   最后修改:2009-03-11
在命令提示符窗口,进入Tomcat目录,执行以下命令:
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600
通过以上步骤生成server.keystore证书文件、

将servlet.xml一下的的注释打开(最好拷贝此段)
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->  
<Connector protocol="org.apache.coyote.http11.Http11Protocol"    
                     port="8443" maxHttpHeaderSize="8192"  
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"  
           enableLookups="false" disableUploadTimeout="true"  
           acceptCount="100" scheme="https" secure="true"  
           clientAuth="false" sslProtocol="TLS"                   
           keystoreFile="server.keystore"    
           keystorePass="changeit"/> 
到这一步访问https;//ip:8443/item

一般Tomcat默认的SSL端口号是8443,但是对于SSL标准端口号是443,这样在访问网页的时候,直接使用https而不需要输入端口号就可以访问,如https://loalhost/webserver
想要修改端口号,需要修改Tomcat的server.xml文件:
1.non-SSL HTTP/1.1 Connector定义的地方,一般如下:
     <Connector port="80" maxHttpHeaderSize="8192"
                maxThreads="500" minSpareThreads="25" maxSpareThreads="75"
                enableLookups="false" redirectPort="443" acceptCount="100"
                connectionTimeout="20000" disableUploadTimeout="true" />
将其中的redirectPort端口号改为:443
2.SSL HTTP/1.1 Connector定义的地方,修改端口号为:443,如下:
<Connector    
   port="443" maxHttpHeaderSize="8192"
   maxThreads="150" minSpareThreads="25"
   maxSpareThreads="75"
   enableLookups="false"
   disableUploadTimeout="true"
   acceptCount="100" scheme="https"
   secure="true"
   clientAuth="false" sslProtocol="TLS"
   keystoreFile="conf/tomcat.keystore"
   keystorePass="123456" />
3.AJP 1.3 Connector定义的地方,修改redirectPort为443,如下:
     <Connector port="8009"
                enableLookups="false" redirectPort="443" protocol="AJP/1.3" />

重新启动Tomcat就可以了。到这一步可以形成访问方式 http://ip/item

到tomcat下面的webapps下面的ROOT下面的index.jsp文件的内容
<?xml version="1.0" encoding="ISO-8859-1"?>
  <%response.sendRedirect("/item");%>

修改web.xml文件的内容
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>

  <welcome-file-list>
   <welcome-file>/index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
删除lib目录下的lib文件
重启Tomcat服务器,在这一步可以直接通过https:ip来访问项目
   发表时间:2009-03-29  
不得行哦
0 请登录后投票
   发表时间:2009-03-30  
wskiwwwxhe 写道
不得行哦

在多个项目中已经使用过 ,没有问题的,你检查是你漏了哪一步吗
0 请登录后投票
   发表时间:2009-03-31  
我想用,http://aaaaa.com形式访问,怎么设置?
0 请登录后投票
   发表时间:2009-03-31  
xiaojianhx 写道
我想用,http://aaaaa.com形式访问,怎么设置?

修改hosts就行了。
0 请登录后投票
   发表时间:2009-05-09  
我去试试看
0 请登录后投票
   发表时间:2009-05-12  
grandboy 写道
xiaojianhx 写道
我想用,http://aaaaa.com形式访问,怎么设置?

修改hosts就行了。

你这样只能是在本机用http://aaaaa.com访问
0 请登录后投票
   发表时间:2009-06-05  
当我配置好了这个后,我做一个登录页面,输入信息后,提交到服务器,那这我往服务器传送过程中的信息算是加了密的吗?请指教
0 请登录后投票
   发表时间:2009-06-08  
ququjioulai 写道
当我配置好了这个后,我做一个登录页面,输入信息后,提交到服务器,那这我往服务器传送过程中的信息算是加了密的吗?请指教

算是加密了,因为这个配置采用的是单向认证,采用的是对称加密算法,主要的目的就是为了链路加密,如果是采用双向认证那就是采用了非对称加密算法,页面需要有公钥的Key,不知道说的对不对,我是这样理解的。
0 请登录后投票
   发表时间:2009-07-30  
引用

<Connector    
   port="443" maxHttpHeaderSize="8192"
   maxThreads="150" minSpareThreads="25"
   maxSpareThreads="75"
   enableLookups="false"
   disableUploadTimeout="true"
   acceptCount="100" scheme="https"
   secure="true"
   clientAuth="false" sslProtocol="TLS"
   keystoreFile="conf/tomcat.keystore"
   keystorePass="123456" />





这里可以让keystorePass不出现在server.xml中么?或者有什么方法可以控制不让它明文出现在这里么?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics