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

启用SNI扩展的SSL握手-服务器上的证书选择

令狐高洁
2023-03-14

在SSL握手期间,当客户机中启用SNI扩展时,服务器不会选择并向客户机返回所需的证书。

我有一个证书链,我已经导入到服务器上JVM的密钥库中。

由内部中间颁发CA颁发的服务器证书。

内部根CA颁发的中间证书。

        X509v3 Key Usage:
            Digital Signature, Certificate Sign, CRL Sign
        X509v3 Basic Constraints: critical
            CA:TRUE

自签名根CA证书。

    X509v3 extensions:
        X509v3 Key Usage:
            Digital Signature, Certificate Sign, CRL Sign
        X509v3 Basic Constraints: critical
            CA:TRUE

我使用“OpenSSL s_client”进行测试

我不知道在SSL握手过程中证书选择在服务器上是如何工作的。

共有1个答案

胡向阳
2023-03-14

我不知道在SSL握手过程中证书选择在服务器上是如何工作的。

如果客户机不发送SNI,服务器应该使用默认证书进行应答(但是有些服务器没有配置任何默认证书,握手会失败)。如果客户端发送SNI,服务器应该选择适当的证书。你的问题看起来很奇怪,因为它看起来不像两种可能性。尝试升级您的JVM(OpenJDK?Oracle?)到最新版本,因为自您的版本以来有许多变化,例如在JSSE服务器中支持TLS服务器名称指示(SNI)扩展。

 类似资料:
  • 问题内容: 我正在连接到以前成功使用过的Web服务,但是现在他们已经更改了主机名并向我发送了两个.pem文件。一个是CA,另一个是我的新客户证书。 (我将Java 1.5,Spring + Spring Web Services与Apache httpclient一起使用,但是我怀疑我的问题是证书,密钥和SSL本身。) 我已经导入了.pem文件以及从Firefox导出到cacerts中的主机的.c

  • 问题内容: 我现在正在尝试使用两种方式的SSL握手来设置Netty,其中客户端和服务器都在其中并验证证书。 这似乎没有在SslHandler中实现。有没有人这样做?我想它将在SslHandler.handshake操作中运行并委托给javax.net.ssl.SSLEngine? 任何提示/技巧/预先存在的实现? 谢谢! 回答(stackoverflow不允许我以正常方式发布它)我发现,如果在设置

  • 我需要在客户端网站邮件服务器上使用SSL,例如https://mail.domain.com。我为主域购买了一个证书,cPanel允许它覆盖所有子域,但证书本身仅限于主域。 我希望不必购买昂贵的通配符SSL,有没有办法只在mail.domain.com上放置第二个SSL证书?cPanel在SSl证书的下拉列表中没有邮件子域。 我想也许我必须创建一个子域什么的...不确定是否有人这样做了。

  • 出身背景我需要让我的网站通过IdentityServer(IDS)进行身份验证。“example.com” 我正在用DotNetCore构建我所有的网站,用apache在代理服务器上托管它们,让我们调用私有ip12.3.4.5。 它们应该如何工作。我去网站的例子。我应该可以和ids通话。例如。com获取身份验证信息,然后重新路由回示例。具有身份验证令牌的com。相反,我得到了一个SSL握手错误。见

  • 我试图在wildfly application server上安装SSL证书,该服务器托管在aws Ec2实例中。我在GoDaddy购买了SSL证书。我从godaddy Portal下载了SSL SSL证书zip。它包含1.gd_bundle-g2-g1.crt2.gdig2.crt.pem 3。70C350D31695.CRT 4。70C350D31695.PEM 使用以下命令创建keystor