AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 915911
Accepted
feroze
feroze
Asked: 2018-06-10 09:10:24 +0800 CST2018-06-10 09:10:24 +0800 CST 2018-06-10 09:10:24 +0800 CST

ERR_SSL_VERSION_OR_CIPHER_MISMATCH 在 Tomcat 中带有签名证书

  • 772

我有一个需要签名证书的 tomcat 服务器。我使用生成了一个密钥

密钥工具-genkey ....

然后生成一个 CSR 并将其发送给我的公司管理员。

他们给了我一个带有签名证书和证书链的 CER 文件。

我使用 keytool 在密钥库中安装了根证书、中间证书和签名证书。

但是当我在服务器中使用证书并与浏览器连接时,我在 chrome 中收到 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误。

这是我使用 openssl 调试时得到的。

$ openssl s_client -connect localhost:18443 -debug -tls1 -msg

CONNECTED(00000003) 写入 0x7fecbbc1b4d0 [0x7fecbc019000] (100 字节 => 100 (0x64)) 0000 - 16 03 01 00 5f 01 00 00-5b 03 01 5b 1c 08 e9 8a ...._...[.. [.... 0010 - 69 73 dd 18 9f 58 98 08-b3 23 dd 76 89 3c b8 7b 是...X...#.v.<.{ 0020 - 3e aa ea 61 d8 88 0f eb- af 52 45 00 00 2e 00 39 >..a.......RE....9 0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f .8.5...... .3.2./ 0040 - 00 9a 00 99 00 96 00 05-00 04 00 15 00 12 00 09 ...... 0050 - 00 14 00 11 00 08 00 06- 00 03 00 ff 01 00 00 04 ...... 0060 - 00 23
.# 0064 -

TLS 1.0 握手 [长度 005f],ClientHello 01 00 00 5b 03 01 5b 1c 08 e9 8a 69 73 dd 18 9f 58 98 08 b3 23 dd 76 89 3c b8 7b 3e aa ea 61 d8 88 0f eb 0 af 52 45 0e 00 39 00 38 00 35 00 16 00 13 00 0A 00 33 00 32 00 32 00 2F 00 9A 00 99 00 96 00 96 00 05 00 04 00 04 00 15 15 00 12 00 09 00 09 00 14 00 14 00 11 00 08 08 00 08 00 06 00 06 00 06 00 06 00 03 00 03 00 ff 01 00 ff 01 00 00 00 00 04444 00 04 00 04 0004 0004 0004 0004 0004 0004 0004 0004 00 0004 0004 0004 00 23 00 00 从 0x7fecbbc1b4d0 [0x7fecbc014600] 读取(5 字节 => 5 (0x5))0000 - 15 03 01 00 02 ..... 从 0x7fecbbc1b4d0 [0x7fecbc014605] 读取(2 字节 => 2 (0x2))0000 - 02 28
.( <<< TLS 1.0 Alert [length 0002], fatal handshake_failure 02 28 24316:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/ OpenSSL098-64.50.7/src/ssl/s3_pkt.c:1145:SSL 警报号 40 24316:error:1409E0E5:SSL 例程:SSL3_WRITE_BYTES:ssl 握手失败:/BuildRoot/Library/Caches/com.apple.xbs/Sources/ OpenSSL098/OpenSSL098-64.50.7/src/ssl/s3_pkt.c:566:

任何想法我做错了什么?

我已经尝试了各种方式,来自 google 和 stackoverflow。

ssl-certificate-errors
  • 2 2 个回答
  • 9087 Views

2 个回答

  • Voted
  1. Best Answer
    chloesoe
    2018-08-24T13:00:58+08:002018-08-24T13:00:58+08:00

    检查输入是否正确

    如果你跑步,keytool --list -keystore <yourkeystore>那么你应该得到一个PrivateKeyEntry类似的东西:

    tomcat, Aug 23, 2018, PrivateKeyEntry, 
    Certificate fingerprint (SHA-256): F2:BA:29:E...
    

    导入证书

    如果您有签名证书和私钥,则必须将它们导出到 PKCS12 密钥库并将其导入到 Java 密钥库。如果没有密钥库中的密钥,签名证书将无法工作。

    #export to PKCS12, set password -> it has to be the same as the java keystore password in the next step
    openssl pkcs12 -export -name tomcat -in cert.cer -inkey key.pem -out tomcat.p12
    
    #import the pkcs12 keystore. make sure, both passwords are the same
    keytool -importkeystore -destkeystore tomcat.keystore -srckeystore tomcat.p12 -srcstoretype pkcs12 -alias tomcat
    

    密码不匹配

    不确定是否适合您的问题,但也许这会让您更接近解决方案:如果证书有问题,例如 ERR_SSL_OBSOLETE_CIPHER,您可以在 server.xml 的 SSL 连接器中添加它

    useCipherSuitesOrder="true"
    ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,
    TLS_DHE_DSS_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
    TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
    TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
    TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
    TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,
    TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,
    TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,
    TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA,TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA,
    TLS_SRP_SHA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
    TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA,TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA,
    TLS_SRP_SHA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
    TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,
    TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
    TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,TLS_RSA_WITH_CAMELLIA_128_CBC_SHA"
    
    • 4
  2. Redboots
    2019-11-15T10:38:08+08:002019-11-15T10:38:08+08:00

    在我从 IntelliJ IDE 中运行 Tomcat 切换并设置为独立运行后,上述答案帮助我诊断了“ssl 或密码不匹配”的原因。

    我已经为localhost (myinitials.company.com) 以外的 URL 设置了密钥库,但试图通过https://localhost访问它。我一运行keytool --list -keystore <yourkeystore>,它就显示为 myinitials.company.com 设置了密钥库。我更改为该主机名,并且没有更多的 ERR_SSL_VERSION_OR_CIPHER_MISMATCH。

    希望这可以帮助找到此页面的其他人。

    • 0

相关问题

  • 带有“https://www”的 Apache SSL 无效证书链

  • 某些浏览器的 SSL 证书错误。如何找出旧浏览器不支持的 SSL 功能,我的网站依赖哪些功能?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve