在命令提示符窗口,进入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部分:
- <!-- 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"
-
/>
<!-- 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作为流行的Java Servlet容器,提供了支持HTTPS协议的能力,这包括了单向认证(也称为服务器认证)和双向认证(也称为客户端认证)。这两种认证机制都是基于SSL(Secure Sockets Layer)和TLS(Transport Layer...
标题中的“Tomcat配置HTTPS单项认证”涉及到的是在Apache Tomcat服务器上设置安全套接层(SSL)以实现HTTPS通信的过程,尤其是关于单向认证(也称为客户端认证)的配置。在互联网上,HTTPS是HTTP协议的安全版本,...
客户端认证可以设置为 true、false 或 want,分别表示强制双向认证、单向认证和可选认证。 四、客户端证书的配置 客户端证书的配置需要将客户端证书导入到浏览器中。可以使用 keytool 工具生成客户端证书,并将其...
不同于传统的单向认证,双向认证不仅要求服务器向客户端证明自己的身份,同时也要求客户端向服务器证明其身份。这种模式在一些高安全性的应用场景,如金融、医疗等领域中尤为常见。 1. **生成服务器证书** 使用JDK...
本文详细介绍了如何使用`AndroidHttpClient`访问`Tomcat`双向SSL验证服务器的过程,包括证书生成、Tomcat配置、客户端验证等多个方面。通过对这些步骤的详细解析,不仅解决了实际项目中的问题,也为读者提供了一个...
【WEB服务器上配置HTTPS环境(单向认证)】 在现代互联网中,为了保障用户数据的安全传输,HTTPS(HTTP over SSL/TLS)协议被广泛应用。它通过加密通信和服务器身份验证来保护网络通信,防止中间人攻击和数据篡改。...
此外还有单向认证和双向认证的区别,后者要求客户端也需要进行认证。 2. **CAS服务端**:负责用户的认证、ticket的生成和验证等核心功能。 3. **CAS客户端**:通常是指那些需要接入CAS单点登录系统的应用服务端。 ...
4. **SSL双向/单向认证**:双向认证要求客户端和服务器都需验证对方的身份,而单向认证只需服务器验证客户端。openssl可以通过不同的命令行选项来实现这两种认证模式。 5. **导入证书**:生成的证书需要导入到...
配置SSO的关键步骤包括创建和配置数字证书以及设置Tomcat服务器。数字证书用于在客户端和服务器之间建立安全的HTTPS连接,确保数据传输的安全性。在上述内容中,`keytool`工具被用来生成和管理这些证书。例如: 1. ...
4. **测试HTTPS连接**:启动Tomcat服务器并通过浏览器访问HTTPS站点,验证HTTPS配置是否正确。 综上所述,通过对加密算法、数字摘要、数字签名、数字证书的理解以及OpenSSL的实际操作,我们可以有效地保护数据的...
单向认证的配置** - 复制已正确导入证书的 `keystore.jks` 文件到 Tomcat 的安装目录下的 `conf` 文件夹中。 - 编辑 `conf/server.xml` 文件,找到 `<Connector>` 配置项,并进行如下修改: ```xml ...
首先,回顾前两天的学习,我们已经掌握了基于HTTPS的单向认证架构,这是J2EE应用部署的基础。同时,我们学习了Web服务器和App Server的基本安全配置,如防止Directory traversal攻击,这是一种常见的Web安全问题。...
SpringBoot的核心特性包括内置Tomcat服务器、自动配置、起步依赖和健康检查等,这些都极大地提高了开发效率。 Vue.js作为前端框架,以其轻量级、高性能和易学易用的特点,在前端开发中备受青睐。Vue.js采用组件化...
4. **内嵌Web服务器**:如Tomcat或Jetty,使得开发和部署更便捷,无需额外配置外部服务器。 5. **Actuator**:提供健康检查、指标收集、审计跟踪等功能,有助于监控和管理应用。 【Vue.js】: 1. **MVVM模式**:Vue...
SpringBoot内置了Tomcat服务器,允许开发者直接运行主类启动应用,无需额外配置。此外,它还集成了大量常用的Spring组件,如Spring Data JPA(用于数据库操作)、Spring Security(用于权限控制)等,使得开发过程...
- 内嵌Web服务器:如Tomcat或Jetty,方便快速启动和部署应用。 - 简化的Maven/Gradle配置:通过 starter 包来简化依赖管理。 - 健康检查和Actuator:提供监控和管理应用的工具。 - 零配置原则:避免过多的手动配置,...
- **单向数据流**:Vue.js提倡单向数据绑定,数据从父组件流向子组件,避免了数据流的混乱。 - **Vuex**:作为状态管理库,Vuex帮助组织和管理组件间的共享状态,确保状态以受控的方式变化。 3. **前后端分离**:...
SpringBoot的核心特性包括自动配置、内嵌Web服务器(如Tomcat或Jetty)、健康检查、应用信息暴露以及起步依赖。在这个项目中,SpringBoot将作为后端服务的基础,负责处理HTTP请求、数据持久化、业务逻辑等。 **Vue....