如何正确配置Tomcat SSLHostConfig?

2024-05-10

我正在按照本教程在 tomcat 中启用 ssl:https://medium.com/@raupach/how-to-install-lets-encrypt-with-tomcat-3db8a469e3d2 https://medium.com/@raupach/how-to-install-lets-encrypt-with-tomcat-3db8a469e3d2

虽然 tomcat 最后运行,但我无法访问 https,说无法连接。所以我检查了日志,得到:

Caused by: java.io.IOException: SSLHostConfig attribute certificateFile must be defined when using an SSL connector

,但我的certificateFile 的定义如您所见:

<Connector port="443"
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    maxThreads="100"
    compression="on"
    scheme="https"
    SSLEnabled="true"
    secure="true"
    SSLVerifyClient="none"
    SSLProtocol="TLSv1.2"
    defaultSSLHostConfigName="test.test">
    <SSLHostConfig hostName="test.test">
        <Certificate certificateFile="conf/cert.pem" certificateKeyFile="conf/privkey.pem" certificateChainFile="conf/chain.pem" />
    </SSLHostConfig>
</Connector>

这些文件存在于conf/中

tomcat 9 文档:https://tomcat.apache.org/tomcat-9.0-doc/config/http.html https://tomcat.apache.org/tomcat-9.0-doc/config/http.htmlSSLHostConfig 和证书部分


您混合使用新属性(自 Tomcat 8.5 起)和已弃用的属性(参见Tomcat 文档 http://tomcat.apache.org/tomcat-9.0-doc/config/http.html#SSL_Support_-_Connector_-_APR/Native_(deprecated))。设置的效果,例如SSLProtocol是创造第二个<SSLHostConfig>带主机名_default_。这就是错误消息所指的元素。

您应该替换过时的标签(SSLVerifyClient and SSLProtocol) 与其当前对应项(或者如果您想要默认值则省略它们):

<Connector port="443"
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="100"
           compression="on"
           scheme="https"
           SSLEnabled="true"
           secure="true"
           defaultSSLHostConfigName="test.test">
    <SSLHostConfig hostName="test.test"
                   protocols="TLSv1.2">
        <Certificate certificateFile="conf/cert.pem"
                     certificateKeyFile="conf/privkey.pem"
                     certificateChainFile="conf/chain.pem" />
    </SSLHostConfig>
</Connector>

Remark:您使用的属性特定于 APR 连接器。如果该选择是故意的,您应该将协议更改为org.apache.coyote.http11.Http11AprProtocol.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何正确配置Tomcat SSLHostConfig? 的相关文章

随机推荐

  • 我想使用 Sequelize 将 MySQL 中的对象数组存储在单个列中

    之前我正在寻找如何使用 Sequelize 在 MySQL 中插入对象数组 然后我找到了一种直接插入数组的解决方案 例如 1 2 在单列中 insert into TABLE NAME id marks VALUES 21 1 2 但我正在
  • 客户端可以看到服务器端源代码吗? ASP.NET

    我想知道使用任何浏览器的任何客户端是否可以看到我的服务器端代码 如果是这样 我怎样才能防止这种情况发生 实际上 客户在访问我的网站时能够看到什么 asp net 我以前从未使用过 asp net 但我认为它与 PHP 或 Perl 相同 客
  • 如何嘲笑一切?

    我了解如何模拟接口或虚拟方法调用 但是像 TypeMock 这样的框架可以模拟框架中的所有内容 使用哪些 NET机制来提供此类功能 例如 Typemock Isolator 使用 CLR分析器API http msdn microsoft
  • 如何使用交换函数使字符串数组交换其组件?

    问题是这段代码不会交换这两个字符串 我是编程新手 但我可以看出问题出在交换函数上 但我不知道如何修复它 我尝试在交换中添加 strcpy 而不是 但这没有用 include
  • 为什么 foo.hasOwnProperty('__proto__') 等于 false?

    var foo bar 5 Why is foo hasOwnProperty proto 等于false 它不能来自原型链中更高层的任何对象 因为它是特定于这个对象的 EDIT 有些答案说它已开启Object prototype 但我不明
  • 在气球内显示带有照片的多个地标的最佳做法是什么?

    我有一个项目如下 从手机上拍摄几张照片 将照片保存在网络系统中 然后将照片显示在其中的谷歌地球上 我读过很多文章 但它们都使用 fetchKml 我读过的一篇好文章是使用 php 但使用 fetchKml 我不知道是否可以使用 parseK
  • Oracle中如何转义单引号? [复制]

    这个问题在这里已经有答案了 我有一列包含某些存储为文本字符串的表达式 其中包括单个引号 例如 错过的交易 包括引号 发生这种情况时如何使用 where 子句 select from table where reason missed tra
  • 使用Spring Cloud Stream Kafka动态更改instanceindex

    如同 在运行时更改 spring cloud stream 实例索引 计数 https stackoverflow com questions 37579939 changing spring cloud stream instance i
  • 删除 servlet 中的 cookie 时出现问题

    我尝试使用以下代码删除 servlet 中的 cookie Cookie minIdCookie null for Cookie c req getCookies if c getName equals iPlanetDirectoryPr
  • Video.js - 阻止点击播放功能

    我正在使用 video js 将视频嵌入到 HTML 页面中 它将用作仅适用于 ipad 的 Web 应用程序 因此我相信它使用的是本机 HTML5 播放器 我正在尝试禁用点击播放功能 以便用户必须使用控件 但我在这样做时遇到了麻烦 我尝试
  • 如何在phonegap上使用GCM处理android中的多个推送通知

    当推送通知到达时 如果用户无法查看该通知 他收到另一条通知 之前的通知正在更新为新的 但它不应该更新为最新的 我们需要单独显示每个通知 这可以使用 GCM 吗 我已经使用Phonegap来开发应用程序 PushPlugin 支持在有效负载中
  • 从 Perl 中的字符串中删除标点符号

    如何从 Perl 中的字符串中删除除空格之外的所有标点符号 s punct g
  • Android 上的 Chrome 强制隐藏地址栏

    我最近开发了一个获取混合 http https 内容的网站 因此 我总是将地址栏显示在顶部 它不会像其他网站那样自动隐藏 这就是我要说的 This https planetkde org 是网站的链接 内容是从各种来源获取的 因此无法过滤非
  • 如何在HQL中模拟NVL

    我试过这个 from Table where par1 is null or col1 par1 但碰巧的是 from Table where par1 is null 始终返回表的所有行 即使 par1 不为 null while sel
  • Firefox(仅限)动态表单操作不起作用

    控制台为操作属性返回空白 我已经移动了 file upload attr action io cfm action updateitemfile item id agenda modal attr data defaultitemid 周围
  • 如何在 OpenAPI 3.0 中定义字节数组

    我正在将 API 从 Swagger 2 0 迁移到 OpenAPI 3 0 在 DTO 中 我有一个指定为字节数组的字段 Swagger 对 DTO 的定义 Job type object properties body type str
  • $.ajax(); 之间的区别和 $.ajaxSetup();

    有什么区别 ajax and ajaxSetup 在 jQuery 中如下 ajax cache false and ajaxSetup cache true 另外 哪一个是最好的选择 以下将阻止all无论您使用哪种 jQuery 方法 g
  • Swift 3 的 NSLog 问题

    迁移到 Swift 3 后 当我尝试执行以下操作时出现错误 self publicDB save listRecord completionHandler record error gt Void in if let saveError e
  • 如何 json_normalize() df 中的特定字段并保留其他列? [复制]

    这个问题在这里已经有答案了 这是我的简单示例 我的实际数据集中的 json 字段非常嵌套 因此我一次解压一层 我需要在 json normalize 之后保留数据集上的某些列 https pandas pydata org docs ref
  • 如何正确配置Tomcat SSLHostConfig?

    我正在按照本教程在 tomcat 中启用 ssl https medium com raupach how to install lets encrypt with tomcat 3db8a469e3d2 https medium com