`

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

阅读更多

在命令提示符窗口,进入Tomcat目录,执行以下命令:
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600
通过以上步骤生成server.keystore证书文件、

注意: localhost,是网站的域名或者ip,根据实际情况填写,比如 www.baidu.com  192.168.0.85  否则会出现证书上的名称无效,或者与站点名称不匹配。


将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来访问项目

 

(附录:)tomcat的配置文件SSL部分详细说明

配置文件server.xml,SSL部分:
Xml代码 复制代码
  1.     <!-- A "Connector" represents an endpoint by which requests are received   
  2.          and responses are returned. Documentation at :   
  3.          Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)   
  4.          Java AJP  Connector: /docs/config/ajp.html   
  5.          APR (HTTP/AJP) Connector: /docs/apr.html   
  6.          Define a non-SSL HTTP/1.1 Connector on port 8080   
  7.     -->  
  8.     <Connector  port="8443" maxHttpHeaderSize="8192"  
  9.         maxThreads="150"  
  10.         minSpareThreads="25"  
  11.         maxSpareThreads="75"  
  12.         enableLookups="false"  
  13.         disableUploadTimeout="true"  
  14.         acceptCount="100"  
  15.         scheme="https"  
  16.         secure="true"  
  17.         clientAuth="false"  
  18.         sslProtocol="TLS"  
  19.         keystoreFile="D:/Tomcat/conf/tomcatKey.keystore"  
  20.         keystorePass="changeit"  
  21.         algorithm="SunX509"  
  22.     />  
    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL HTTP/1.1 Connector on port 8080
    -->
    <Connector  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="D:/Tomcat/conf/tomcatKey.keystore"
        keystorePass="changeit"
        algorithm="SunX509"
    />

 

属性说明:

 port:     这个port属性(默认值是8443)是 TCP/IP端口数码,Tomcat在其上监听安全连接。你可以把它更改成任何你愿意要的数值(如默认的https通信,数目是443)。不过,在许多操作系统中,要想在比1024小的端口数码上运行Tomcat,需要特殊的设置(它超出了这个文档资料的范围)。
 
redirectPort: 如果你在这里更改端口数值,你还必须更改在non-SSL连接器上的redirectPort 这个属性特定的值。这允许Tomcat自动地redirect那些试图访问有安全限制页面的用户,指明根据 Servlet 2.4 Specification要求,SSL是必需的
 
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服务器配置https双向认证、https单向认证-ssl、tls

    Tomcat作为流行的Java Servlet容器,提供了支持HTTPS协议的能力,这包括了单向认证(也称为服务器认证)和双向认证(也称为客户端认证)。这两种认证机制都是基于SSL(Secure Sockets Layer)和TLS(Transport Layer...

    tomcat配置https单项认证

    标题中的“Tomcat配置HTTPS单项认证”涉及到的是在Apache Tomcat服务器上设置安全套接层(SSL)以实现HTTPS通信的过程,尤其是关于单向认证(也称为客户端认证)的配置。在互联网上,HTTPS是HTTP协议的安全版本,...

    tomcat实现SSL双向认证

    客户端认证可以设置为 true、false 或 want,分别表示强制双向认证、单向认证和可选认证。 四、客户端证书的配置 客户端证书的配置需要将客户端证书导入到浏览器中。可以使用 keytool 工具生成客户端证书,并将其...

    Tomcat_SSL配置[归类].pdf

    不同于传统的单向认证,双向认证不仅要求服务器向客户端证明自己的身份,同时也要求客户端向服务器证明其身份。这种模式在一些高安全性的应用场景,如金融、医疗等领域中尤为常见。 1. **生成服务器证书** 使用JDK...

    AndroidHttpClient访问Tomcat双向SSL验证服务器.pdf

    本文详细介绍了如何使用`AndroidHttpClient`访问`Tomcat`双向SSL验证服务器的过程,包括证书生成、Tomcat配置、客户端验证等多个方面。通过对这些步骤的详细解析,不仅解决了实际项目中的问题,也为读者提供了一个...

    WEB服务器上配置

    【WEB服务器上配置HTTPS环境(单向认证)】 在现代互联网中,为了保障用户数据的安全传输,HTTPS(HTTP over SSL/TLS)协议被广泛应用。它通过加密通信和服务器身份验证来保护网络通信,防止中间人攻击和数据篡改。...

    统一身份认证-CAS配置实现

    此外还有单向认证和双向认证的区别,后者要求客户端也需要进行认证。 2. **CAS服务端**:负责用户的认证、ticket的生成和验证等核心功能。 3. **CAS客户端**:通常是指那些需要接入CAS单点登录系统的应用服务端。 ...

    opesnssl证书配置和使用1

    4. **SSL双向/单向认证**:双向认证要求客户端和服务器都需验证对方的身份,而单向认证只需服务器验证客户端。openssl可以通过不同的命令行选项来实现这两种认证模式。 5. **导入证书**:生成的证书需要导入到...

    单点登录Spring-security+CAS.docx

    配置SSO的关键步骤包括创建和配置数字证书以及设置Tomcat服务器。数字证书用于在客户端和服务器之间建立安全的HTTPS连接,确保数据传输的安全性。在上述内容中,`keytool`工具被用来生成和管理这些证书。例如: 1. ...

    Openssl与数字证书

    4. **测试HTTPS连接**:启动Tomcat服务器并通过浏览器访问HTTPS站点,验证HTTPS配置是否正确。 综上所述,通过对加密算法、数字摘要、数字签名、数字证书的理解以及OpenSSL的实际操作,我们可以有效地保护数据的...

    服务器证书安装配置指南.docx

    单向认证的配置** - 复制已正确导入证书的 `keystore.jks` 文件到 Tomcat 的安装目录下的 `conf` 文件夹中。 - 编辑 `conf/server.xml` 文件,找到 `&lt;Connector&gt;` 配置项,并进行如下修改: ```xml ...

    通向架构师的道路(第三天)之apache性能调优

    首先,回顾前两天的学习,我们已经掌握了基于HTTPS的单向认证架构,这是J2EE应用部署的基础。同时,我们学习了Web服务器和App Server的基本安全配置,如防止Directory traversal攻击,这是一种常见的Web安全问题。...

    SpringBoot前后端分离权限管理系统

    SpringBoot的核心特性包括内置Tomcat服务器、自动配置、起步依赖和健康检查等,这些都极大地提高了开发效率。 Vue.js作为前端框架,以其轻量级、高性能和易学易用的特点,在前端开发中备受青睐。Vue.js采用组件化...

    基于springboot+vue的在线办公OA系统.zip

    4. **内嵌Web服务器**:如Tomcat或Jetty,使得开发和部署更便捷,无需额外配置外部服务器。 5. **Actuator**:提供健康检查、指标收集、审计跟踪等功能,有助于监控和管理应用。 【Vue.js】: 1. **MVVM模式**:Vue...

    毕业设计:基于SpingBoot+Vue的软考在线培训系统.zip

    SpringBoot内置了Tomcat服务器,允许开发者直接运行主类启动应用,无需额外配置。此外,它还集成了大量常用的Spring组件,如Spring Data JPA(用于数据库操作)、Spring Security(用于权限控制)等,使得开发过程...

    使用 springboot 和 react 开发的博客系统.zip

    - 内嵌Web服务器:如Tomcat或Jetty,方便快速启动和部署应用。 - 简化的Maven/Gradle配置:通过 starter 包来简化依赖管理。 - 健康检查和Actuator:提供监控和管理应用的工具。 - 零配置原则:避免过多的手动配置,...

    music后端,基于springboot+vue前后端分离的音乐网站系统,毕业设计。源于B站.zip

    - **单向数据流**:Vue.js提倡单向数据绑定,数据从父组件流向子组件,避免了数据流的混乱。 - **Vuex**:作为状态管理库,Vuex帮助组织和管理组件间的共享状态,确保状态以受控的方式变化。 3. **前后端分离**:...

    SpringBoot + Vue + ElementUI 实现一个后台管理系统模板.zip

    SpringBoot的核心特性包括自动配置、内嵌Web服务器(如Tomcat或Jetty)、健康检查、应用信息暴露以及起步依赖。在这个项目中,SpringBoot将作为后端服务的基础,负责处理HTTP请求、数据持久化、业务逻辑等。 **Vue....

Global site tag (gtag.js) - Google Analytics