Tomcat 6版本配置SSL过程有两步:

1、用JDK自带的keytool.exe来生成私有密钥和自签发的证书,如下:

keytool -genkey -keyalg RSA -alias tomcat

按提示输入相关内容后,这条命令将在默认密钥库文件里新增一个别名为tomcat的私有密钥项及其自签发的证书。默认密钥库文件为:

%USERPROFILE%\.keystore

2、修改Tomcat的conf\server.xml文件,即增加下面一段:

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"maxThreads="150" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS"keystoreFile="${user.home}/.keystore"keystorePass="changeit" />

这里的${user.home}就是上面的%USERPROFILE%,只是一个是Java语法,另一个是Windows语法。

设置好就能正常启动Tomcat了。

可是按同样的方法来配置Tomcat 7却启动不起来,报如下错误:

严重: Failed to initialize end point associated with ProtocolHandler ["http-apr-8443"]
java.lang.Exception: Connector attribute SSLCertificateFile must be defined when using SSL with APR

仔细看上面的异常信息发现这是APR报的错误。Tomcat 6也有APR包但我从来都没用过。为此查看了Tomcat的ssl-how,在“Edit the Tomcat Configuration File”一节中说到:

  • Tomcat提供了两个SSL实现,一个是JSSE实现,另一个是APR实现。
  • Tomcat将自动选择使用哪个实现,即如果安装了APR则自动选择APR,否则选择JSSE。
  • 如果不希望让Tomcat自动选择,而是我们自己指定一个实现则可通过protocol定义,如下:
<Connector protocol="..." />

我又查看了6.0的相同说明,里面与7.0的说明一模一样。因此问题只可能是:是否安装了APR包。

以前只听说过APR但没弄过。APR是什么文件?后来才发现APR文件名为tcnative-1.dll。进一步检查6.0和7.0的安装目录,结果发现6.0里没这个dll文件,而7.0里有。换句话说,6.0默认使用JSSE实现,而7.0默认使用APR实现。

弄明白缘由就好办了。由于习惯使用6.0的配置方式(即JSEE实现),因此只要把上面conf\server.xml里的protocol修改一下就行了:

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"maxThreads="150" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS"keystoreFile="${user.home}/.keystore"keystorePass="changeit" />

重新启动,一切正常。

Tomcat SSL配置 Connector attribute SSLCertificateFile must be defined when using SSL with APR解决 作者:孤风一相关推荐

  1. RHEL5(CentOS)下nginx+php+mysql+tomcat+memchached配置全过程(转)

    RHEL5(CentOS)下nginx+php+mysql+tomcat+memchached配置全过程 一.准备工作:SSH,telnet终端中文显示乱码解决办法vi /etc/sysconfig/ ...

  2. ssl证书绑定windows服务器端口及SSL配置命令详解

    ssl证书绑定windows服务器端口及SSL配置命令详解 第一部分 多层应用服务器中SSL的服务器配置 一.首先,你的 服务器的防火墙 或云服务器的安全配置要哦放通下面你想配置的端口 我配置的端口为 ...

  3. tomcat配置重定向_在Tomcat上配置SSL以及从HTTP到HTTPS的设置自动重定向的步骤

    tomcat配置重定向 Secured Socket Layer (SSL) is the cryptography protocol to provide message security over ...

  4. 解决Error running ‘Tomcat(备注这里你起的名字)‘: SSL HTTP Connector node not found: set up one in the server.xml

    项目场景: Idea配置tamcat环境变量出现报错问题 问题描述: 运行"Tomcat"时出错:未找到SSL HTTP连接器节点:在server.xml中设置一个 : SSL H ...

  5. Nginx + Tomcat + HTTPS 配置不需要在 Tomcat 上启用 SSL 支持

    2019独角兽企业重金招聘Python工程师标准>>> Nginx SSL+tomcat集群 Nginx tomcat no 不用https 最近做了个Web项目, 架构上使用了 N ...

  6. Apache Tomcat 8配置参考 HTTP连接器

    目录 介绍 属性 共同属性 标准实施 Java TCP套接字属性 NIO特定配置 NIO2特定配置 APR /本机特定配置 嵌套组件 特殊功能 HTTP / 1.1和HTTP / 1.0支持 HTTP ...

  7. Tomcat参数配置

    2019独角兽企业重金招聘Python工程师标准>>> 1. JAVA_OPTS内存优化 Tomcat内存优化主要是对启动参数的优化,可以在Tomcat的启动脚本catalina.s ...

  8. tomcat https 配置

    以前基本上笔者对于安全性考虑的并不多,最近因为saas平台要开始逐渐推广,所以需要开始逐渐加强xss/crsf/https等措施以避免潜在的安全性风险.本文简单的记录下tomcat下https的配置. ...

  9. Tomcat - 常用配置

    2019独角兽企业重金招聘Python工程师标准>>> Tomcat JNDI 配置 JNDI:Java Naming and Directory Interface Java命名和 ...

  10. [企业内部https证书配置]tomcat 7配置https的完整历程

    很久之前开发的一套Java Web系统,该系统是企业内部使用的系统, 部署在Tomcat上,一开始使用http 访问, 后来因为安全需求, 转换为https 访问. 在几年前https 访问之后一切正 ...

最新文章

  1. 专访 | 商汤HPC负责人刘文志(风辰):未来战略的两大方向及招人的4个标准
  2. hdu 4033 二分几何
  3. 竟有如此沙雕的代码注释!
  4. Sublime 2 配置
  5. randomaccessfile在移动设备多线程多服务器下载时写入慢的问题
  6. K8S集群部署-环境准备
  7. NS2相关学习——可靠的MANET应用程序的Gossip协议分析
  8. 数据湖,已成为海量数据存储与分析的重要承载方式
  9. erlang安装_RabbitMQ的使用(一)- RabbitMQ服务安装
  10. 一文带你了解数据中心大二层网络演进之路
  11. Golang 结构类型
  12. Tensroflow练习,包括强化学习、推荐系统、nlp等
  13. C++中类中常规变量、const、static、static const(const static)成员变量的声明和初始化...
  14. html select 默认不选,解决设置select默认选中不生效的方法
  15. Ubuntu安装客户端RabbitVCS(svn管理)
  16. ioncube php encode,ionCube PHP解密
  17. 2021年安全生产模拟考试(全国特种作业操作证电工作业-防爆电气模拟考试题库二)安考星
  18. 读取excel标题、内容
  19. 数据采集之全埋点数据采集分析方法的一些整理
  20. VC++6.0 用gSoap客户端访问WebService

热门文章

  1. VBA(7)字典及常用应用
  2. iphone/ipad 连接smb服务器,备份照片
  3. PS第一集 证件照换底色
  4. 什么是线程安全?如何保证线程安全?
  5. Figma常用快捷键(Mac版)
  6. pm2同时启动多个前端项目
  7. PowerDesigner关联表结构表示一对一或一对多
  8. 抖音上热门的小技巧,不看后悔
  9. IoT数据科学与传统数据科学的10个差异
  10. css兼容360浏览器极速,CSS hack 360浏览器 极速模式与兼容模式