`

Tomcat - SSL操作大全

阅读更多

简介

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,目前最新版本是6.0.20(截止到2009-10-22)。

Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。

当Tomcat作为独立的Web Servcer运行的时候,可以独立处理SSL请求,这个时候,我们就需要在Tomcat上安装SSL证书,如果Tomcat和Apache联合工作,事实上是作为Apache的一个独立进程来负责JSP页面和Servlet,这个时候,我们就需要将SSL证书安装在Apache上,这点需要先确认好。

Tomcat还有一个特殊的模块:APR(Apache Portable Runtime)是为了提高Tomcat处理静态内容性能,提供的组件,其实就是以Apache2.0为核心的一个http服务。在HTTPS方面,APR和Apache一样采用Openssl,在证书安装部分,会简要说明一下。

Tomcat支持Jave Keystore文件格式作为SSL证书存储用途。Java Keystore文件的常见扩展名有.jks和.key。要制作JKS文件,有2种主要方式:

  1. 用JRE自带的Keytool工具。先产生一个新的jks文件,并到处一个csr文件,然后将csr发给CA签名,并将签名后的文件导入jks文件。
  2. 用openssl工具,制作key和csr文件,将csr发给CA签名得到cer文件,然后将key和cer合并成一个jks文件。

 

 


制作CSR申请文件

1、制作Tomcat用CSR请求文件,最简单的办法就直接使用我们的 OpenSSL CSR在线生成器: https://www.myssl.cn/openssl/createcsr.asp
(注意:您必须同时保存server.key和server.csr文件)

2、常见的JKS文件制作,要采用Keytool工具,这个工具是JRE自带的。通过命令行的方式输入CSR信息,而且可以支持中文资料。
首先,生成一个新的jks文件,命令如下: keytool -genkey -alias tomcat -keyalg RSA -keystore c:\server.jks

输入密钥库密码:changeit
您的姓名是什么?
  [未知]:  www.myssl.cn
您的组织单位名称是什么?
  [未知]:  Shanghai Fastcom Technology Co.,Ltd
您的组织名称是什么?
  [未知]:  It Dept.
您的市/县/区或地点名称是什么?
  [未知]:  Shanghai
您的省/直辖市名称是什么?
  [未知]:  Shanghai
此单位的两字母国家或地区代码是什么?
  [未知]:  CN
CN=www.myssl.cn, OU="Shanghai Fastcom Technology Co.,Ltd", 
O=It Dept., L=Shanghai, ST=Shanghai, C=CN 正确吗?
(输入“yes”或“no”)
  [否]:  Y

为 <tomcat> 输入密钥密码
        (如果与密钥库密码相同则返回):

说明: 输入keystore密码: 请输入保护证书密钥的密码。

您的名字与姓氏是什么?请输入域名,例如:www.myssl.cn

您的组织单位名称是什么?请输入单位名称,如: Shanghai Fastcom Technology Co Ltd

您的组织名称是什么?请输入部门名称,如: IT Dept

您所在的城市或区域名称是什么?输入城市名称,如:Shanghai

您所在的州或省份名称是什么?输入省份名称,如:Shanghai

该单位的两字母国家代码是什么?中国请输入CN

CN=www.myssl.cn, OU=Shanghai Fastcom Technology Co Ltd, O=IT Dept, L=Shanghai, ST=Shanghai, C=CN 正确吗?输入 Y

输入的主密码(如果和 keystore 密码相同,按回车):按回车

根据这个jks文件产生一个csr文件,输入命令:
keytool -certreq -alias tomcat -keystore server.jks -file server.csr

 


安装证书文件

1、将证书内容存为一个文件:

您会收到一封来自迅通诚信的邮件,证书内容附在邮件中。如果证书是以附件的形式(Cert.cer)夹带在邮件中,您就可以直接应用它。如果您的证书中以文本的方式存在邮件中,您就需要将邮件中的证书部分的内容用Vi或Notepad存成一个纯文本文件。不要将其存成Microsoft Word 或其它字处理软件格式,并确定证书内容中不含有空行和空格,文件名可以为server.cer。如下所示:

 

 

 

 

将保存好的server.cer文件和制作CSR时候生成的server.key一起复制到服务器上。

如果是使用在线工具制作的CSR文件,请打开在线JKS合成工具,将制作CSR时候的server.key文件和刚刚收到的server.cer输入2个文本框,然后合成一个server.jks文件。

3、如果是用keytool做的CSR文件,则需要按下面方式,将证书导入原来的jks文件。

3.1 根据您选择的证书产品下载相应的根证书,保存为root.cer

全球信SSL专业版根证书(QuickSSL Premium)
全球信SSL企业版根证书(True BusinessID)
全球信SSL增强版根证书(Power ServerID)
闪快SSL普及版根证书(RapidSSL)
免费SSL试用版根证书(FreeSSL)

3.2 运行以下命令,将根证书(root.cer)导入jks文件,作为可信CA证书:
keytool -import -trustcacerts -keystore server.jks -alias root -file root.cer

3.3 然后运行命令,将CA签好的证书文件srever.cer导入jks文件:
keytool -import -keystore server.jks -alias tomcat -file server.cer

4、如果没有APR的Tomcat,按下面例子更新Server.xml文件配置

<-- Define a SSL Coyote HTTP/1.1 Connector on port 443 -->
<!--Tomcat 5.5 
<Connector 
           port="8443" minProcessors="5" maxProcessors="75"
           enableLookups="true" disableUploadTimeout="true"
           acceptCount="100" debug="0" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           keystoreFile="server.jks" keystorePass="changeit"/>
-->

注意:不同tomcat版本,修改server.xml的方式不同,请参考tomcat说明:
tomcat 6.0 http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
tomcat 5.5 http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html
tomcat 5.0 http://tomcat.apache.org/tomcat-5.0-doc/ssl-howto.html
tomcat 4.1 http://tomcat.apache.org/tomcat-4.1-doc/ssl-howto.html

5、配置了APR的Tomcat,需要使用server.key和server.cer文件,并按mod_ssl的语法来更新Server.xml文件配置

<-- Define a APR SSL Coyote HTTP/1.1 Connector on port 443 --&rt;
<!--
<Connector protocol="org.apache.coyote.http11.Http11AprProtocol"
           port="443" minSpareThreads="5" maxSpareThreads="75"
           enableLookups="true" disableUploadTimeout="true" 
           acceptCount="100"  maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           SSLCertificateFile="server.cer" 
           SSLCertificateKeyFile="server.key"
           SSLVerifyClient="none"  sslProtocol="TLS"/>
-->

 

 


客户证书认证

1、没有APR模块的Tomcat,如果需要采用客户证书认证(双向SSL认证),需要在server.xml中增加以下配置:

clientAuth="true"
           truststoreFile="ca.jks"
           truststorePass="changeit"

说明:
clientAuth="true",表示必须有客户证书才可以访问。
clientAuth="false",表示不验证是否有客户证书。
clientAuth="want",表示会检查客户证书,但如果没有也可以继续访问。

2、使用APR模块的Tomcat,需要用mod_ssl的语法来配置客户证书认证,增加以下配置:

SSLVerifyClient="require"
           SSLCACertificateFile="ca.cer"

详细参数,可以参考Apache SSL文档说明。

证书的备份(导出)

Tomcat的证书备份,只需要将server.jks文件(或可查看server.xml中keystoreFile对应的那个jks文件)复制到备份媒质上即可了。

 

 


证书的恢复(导入)

要恢复Tomcat的证书同样非常简单,将备份的jks文件,复制到新的服务器上,然后参考上面服务器证书安装说明,修改server.xml文件即可。

  • 大小: 77.5 KB
分享到:
评论
1 楼 GGGGeek 2017-07-10  
博主不再写博客了吗?好遗憾,很多博文写的真好啊

相关推荐

    Apache-Tomcat-8.5.5(Linux )

    async io是指client端只需提交请求,由操作系统来负责在事件就绪后回调应用逻辑。事实上,目前只有Window在OS级别提供了对async io的支持,也即IOCP,在Linux还是要通过select、poll、epoll等来实现这个机制。 所以...

    Win7配置Tomcat6与SSL问题以及解决方案.doc

    1. 将JDK与Tomcat6安装到C盘后,配置SSL时候运行keytool命令无法生成server.keystore(暂未找到合理的解决方案) 2. 将JDK与Tomcat6安装到D盘后,配置SSL时候可以运行keytool命令,并可以生成server.keystore,但是...

    Tomcat配置SSL加密网站.doc

    tomcat的8005端口是用来关闭服务的,如果服务关闭不了那就执行下边操作,如果服务能正常访问,能正常关闭,那就不需要执行下边操作

    Tomcat6+7+8SSL证书部署操作指南

    Tomcat服务器是大家经常用到的web服务器,部署SSl证书增加了网站的安全性,本文档提供了安装SSl证书的方法

    如何在tomcat9中配置StartSSL

    StartSSL是当前免费ssl证书中比较靠谱的,是大家比较省心的一个使用方式,文档中详细介绍,在StartSSL中申请ssl证书和安装到tomcat中的方法(StartSSL注册认证及域名验证未作介绍,自行操作,比较简单。)

    apache分布式操作文档

    包含了分布式需要的服务 apache_2.0.55-win32-x86-no_ssl.msi、mod_jk-apache-2.0.55.so、apache-tomcat-7.0.52-windows-x64.zip以及如何部署的操作文档,步骤非常详细

    Win+Apache+PHP+MySQL+Tcomcat配置

    系统要求: 硬件能跑起操作系统即可 Win2K、WinXP或Win2003操作系统 前期准备: 所需软件列表:(本配置以下列软件版本完成) 1、 APACHE_2.0.47-win32-x86-no_ssl (Apache web服务器) 2、 PHP-4.3.3-Win32 ...

    Win64OpenSSL.zip

    该软件用于配置Windows Server系统中Tomcat的SSL证书操作,版本为Win64OpenSSL-1_1_0h,安装过程中一直下一步即可

    openssl生成认证证书的工具

    证书颁发机构提供的网站中去下载,具体的操作会为证书颁发机构给发的邮箱中会有相关的提示 好了,到这里都配置完了,重启tomcat,就可以看到效果。不过,看到的通常会是一个exception,大概是说APR not available ...

    基于Javaweb+Tomcat+MySQL的大学生公寓管理系统.zip

    MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密连接、审计日志等功能,确保数据的安全性和合规性。同时,MySQL附带了一系列管理工具,如MySQL Server、MySQL Workbench、MySQL Shell等,...

    Jpom-v2.10.41.zip

    Jpom项目监控软件是一款简而轻的低侵入式在线构建、...10、Tomcat状态、文件、war包在线实时管理 特别提醒:在Windows服务器中可能有部分功能因为系统特性造成兼容性问题,建议在实际使用中充分测试。Linux目前兼容良好

    基于ZigBee+ESP32+MQTT+EMQX+TomCat+Servlet接口+MySQL+安卓app的物联网课设.zip

    MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密连接、审计日志等功能,确保数据的安全性和合规性。同时,MySQL附带了一系列管理工具,如MySQL Server、MySQL Workbench、MySQL Shell等,...

    Java网上书店管理系统(基于MVC模式编写:前端jsp页面、数据库MySQL、服务器Tomcat).zip

    MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密连接、审计日志等功能,确保数据的安全性和合规性。同时,MySQL附带了一系列管理工具,如MySQL Server、MySQL Workbench、MySQL Shell等,...

    jdbc解决mysql8.0连接失败,下载新的驱动

    useSSL=false&serverTimezone=UTC"; 其中: locahost是用户ip, 3306是端口号, test是你想要操作的数据库 UTC为中国上海的市区 改好这个以后通常将这个玩意分装成一个函数,然后返回用户的connection 然后就能基本...

    java后台小程序源码-alfresco-esign-cert:Alfresco客户端证书签名(包括Chrome)

    操作(即谷歌浏览器)。 消息 现在有了基于 Alfresco ADF 框架的 Angular 5 组件。 可在 以前的背景 该插件包括一个按钮,用于根据来自客户端计算机的电子证书执行电子签名。 此插件与 SSL 或服务器电子签名无关。 ...

    【搬运】苹果ios超级签名源码包java版带分发页面支持安卓合并网站源码

    centos7服务器一台 域名一个并申请ssl证书 下载apache和tomcat两种格式的证书 服务器环境: jdk11 unzip, zip mysql5.7 screen 环境搭建不再说明,请自行解决 开始搭建: 1.下载源码包后解压,得到以下文件,apache和...

    [计算机毕设]基于jsp的在线考试系统设计与实现(源代码+项目报告).zip

    在线考试系统的设计与...整个系统层次结构简单,操作容易,并具备一定的安全性。考生借助此系统,可以随时随地的进行课程结业考试,同样,老师使用该系统能更高效、便捷的组织在线考试。 在线考试系统;B/S模式;SSL

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    9.1.1 ssl会话 304 9.1.2 cookies 304 9.1.3 url重写 305 9.2 java servlet api的会话跟踪 306 9.2.1 httpsession接口 306 9.2.2 session的生命周期 307 9.2.3 cookie的应用 319 9.2.4 ...

    一种基于JSP在线考试系统的设计与实现(含jsp源码和文章说明和数据库).rar

    同时,为确保系统安全运行和考试信息的机密性、完整性,本系统采用了SSL协议来加密传输的考试数据,并实现对服务器的认证。系统采用B/S开发模式,以JAVA作为开发平台,结合JSP、JavaScript、Html等语言,以Tomcat为...

    uh-jsp-casdemo:CAS 演示 JSP 页面

    您需要在 conf/server.xml 中启用 SSL 连接器 源代码库依赖 查看构建 pom.xml 文件以查看各种代码依赖项。 操作系统 该应用程序是在 Mac OS X 上开发的,但应该可以在安装了上述 Java 和 Tomcat 的任何平台上运行。...

Global site tag (gtag.js) - Google Analytics