当前位置: 首页 > 知识库问答 >
问题:

如何使用SNI设置提供两个SSL证书的Tomcat?

姚丰羽
2023-03-14

根据这两个答案[1][2],可以使用服务器名称指示(SNI)从同一个Apache Tomcat提供两个SSL证书。

我的问题是,如何设置这个?我可以设置两个虚拟主机,但我仍然只有一个连接器,它向客户机提供指定的SSL证书。在连接器中,可以指定用于证书的密钥存储和别名,但没有参数说明该连接器用于哪个虚拟主机,或者根据所使用的域向客户机提供哪个证书。

我如何告诉tomcat在使用SNI时必须使用哪个SSL证书(或者更正确地说,哪个密钥库)?

[1]https://stackoverflow.com/a/10173447
[2]https://stackoverflow.com/a/6343059

共有1个答案

柴霖
2023-03-14

你需要重新阅读这些问题的答案。服务器端直到Java8才支持SNI。Tomcat8必须支持的最低Java版本是Java7,所以目前Tomcat中没有SNI支持。

如果Tomcat运行在Java8或更高版本上,可以选择支持SNI,但这需要对Tomcat中的代码进行更改,目前还没有计划。

截至2014年12月的更新情况:

在Tomcat9的TODO列表中添加SNI支持。该TODO列表相当长,SNI目前不在列表的顶部。像往常一样,补丁是受欢迎的。

一旦在Tomcat9中实现了SNI,就有可能将SNI支持回移植到Tomcat7和Tomcat8中。再次,补丁欢迎。

截至2015年6月更新:

SNI已经为Tomcat9实现。所有三个HTTP连接器实现(NIO、NIO2和APR/Native)都支持它。要将SNI与NIO或NIO2一起使用,您需要从源代码编译Tomcat9(也称为trunk)。要在apr/native中使用SNI,还需要编译tc-native主干(而不是Tomcat发行版当前使用的1.1.x分支)。

TLS配置已显著改变以支持SNI。构建Tomcat9后,详细信息将在docs web应用程序中显示。

截至2016年11月更新:

Tomcat 8.5.x中包含了SNI支持。它不太可能进一步被撤回。也就是说,它不太可能达到8.0.x或7.0.x。

 类似资料:
  • 问题内容: 我正在尝试托管一个我使用Facebook样板在本地创建和测试的React应用。 客户端应用程序与我使用node.js制作的API进行了交互,并且使用该API可以毫无问题地建立安全连接(通过node.js客户端发送我的SSL证书进行测试)。 但是,在使用react发送我的SSL证书而不是自签名证书时,我遇到了困难,这导致我使用chrome并尝试访问https://example.net:

  • 问题内容: 我正在尝试使用axios向api端点发出请求,但出现以下错误: 似乎axios使用的https模块无法验证服务器上使用的SSL证书。 使用浏览器访问服务器时,证书有效,我可以查看/下载该证书。我还可以通过https向浏览器上的api请求。 我可以通过关闭验证来解决此问题。此代码有效。 问题是,这不验证SSL证书,因此打开了安全漏洞。 如何配置axios以信任证书并正确验证它? 问题答案

  • 问题内容: 在以前的Express版本中,我可以这样做: 但是,在较新版本的express中,此功能不再起作用: 我应该打电话来设置证书吗?如果可以,怎么办? 问题答案: 请参阅Express文档以及https.createServer的Node文档(express建议使用的文档): createServer的其他选项位于:http : //nodejs.org/api/tls.html#tls_

  • SNI仅在V2配置的API中受支持。 目前的实现要求每个FilterChain中的过滤器必须相同。在未来的版本中,这个要求将被放宽,以便SNI可以用来在完全不同的过滤器链之间进行选择。HTTP连接管理器中仍然可以使用域名匹配来选择不同的路由。这是SNI最常见的用例。 以下是满足上述要求的YAML示例。 address: socket_address: { address: 127.0.0.1,

  • 1. 介绍 Let’ s Encrypt已有免费的证书可用,以后的网站估计都要上https的吧,所以把我的网站上的证书换了一下,这节主要是参考使用 acme.sh 给 Nginx 安装 Let’ s Encrypt 提供的免费 SSL 证书这篇文章,并结合自己的情况,把我的经验记录下来。 2. 安装 我们使用acme.sh来申请和管理证书,它很简单用,还能够利用crontab自动更新证书,而且是默

  • 我创建了两个类:-这一个扩展了OkHttp,并有一个新方法getUnsafeOkHttpClient()。 和其他主要类别: 但我仍然有一个错误: 线程“main”javax中出现异常。网ssl。SSLHandshakeException:太阳。安全验证器。ValidatorException:PKIX路径生成失败:sun。安全供应商。证书路径。SunCertPathBuilderExceptio