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

在java.security的jdk.tls.disabledAlgorithms属性中更改DH keySize会导致切换服务器选择的密码和tls版本

董和风
2023-03-14

我们正在使用OpenJDK 13连接到https url,并且SSL握手遇到问题。它总是以javax.net.ssl.SSLHandshakeException结尾:DH ServerKeyExchange不符合算法约束

我已使用系统属性-Djavax.net打开了ssl调试输出。debug=ssl:handshake查看发生了什么。

"ClientHello": {
  "client version"      : "TLSv1.2",
  "random"              : "65 BC 66 59 53 A2 29 F5 DF 14 0F 9F 3D C2 AC E3 90 69 92 A2 53 4F 61 1E 1A BD AA 8A 67 4C 14 D9",
  "session id"          : "DB BA 01 32 DF 4A 86 36 71 FA DA 0D 9E D7 F3 3B 94 E9 32 84 95 2A 61 FA 8D 01 FB 87 75 E1 F8 A9",
  "cipher suites"       : "[TLS_AES_256_GCM_SHA384(0x1302), TLS_AES_128_GCM_SHA256(0x1301), TLS_CHACHA20_POLY1305_SHA256(0x1303), TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(0xC02C), TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(0xC02B), TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256(0xCCA9), TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xC030), TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256(0xCCA8), TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(0xC02F), TLS_DHE_RSA_WITH_AES_256_GCM_SHA384(0x009F), TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256(0xCCAA), TLS_DHE_DSS_WITH_AES_256_GCM_SHA384(0x00A3), TLS_DHE_RSA_WITH_AES_128_GCM_SHA256(0x009E), TLS_DHE_DSS_WITH_AES_128_GCM_SHA256(0x00A2), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384(0xC024), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(0xC028), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256(0xC023), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(0xC027), TLS_DHE_RSA_WITH_AES_256_CBC_SHA256(0x006B), TLS_DHE_DSS_WITH_AES_256_CBC_SHA256(0x006A), TLS_DHE_RSA_WITH_AES_128_CBC_SHA256(0x0067), TLS_DHE_DSS_WITH_AES_128_CBC_SHA256(0x0040), TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384(0xC02E), TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384(0xC032), TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256(0xC02D), TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256(0xC031), TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384(0xC026), TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384(0xC02A), TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256(0xC025), TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256(0xC029), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(0xC00A), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xC014), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(0xC009), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(0xC013), TLS_DHE_RSA_WITH_AES_256_CBC_SHA(0x0039), TLS_DHE_DSS_WITH_AES_256_CBC_SHA(0x0038), TLS_DHE_RSA_WITH_AES_128_CBC_SHA(0x0033), TLS_DHE_DSS_WITH_AES_128_CBC_SHA(0x0032), TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA(0xC005), TLS_ECDH_RSA_WITH_AES_256_CBC_SHA(0xC00F), TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA(0xC004), TLS_ECDH_RSA_WITH_AES_128_CBC_SHA(0xC00E), TLS_RSA_WITH_AES_256_GCM_SHA384(0x009D), TLS_RSA_WITH_AES_128_GCM_SHA256(0x009C), TLS_RSA_WITH_AES_256_CBC_SHA256(0x003D), TLS_RSA_WITH_AES_128_CBC_SHA256(0x003C), TLS_RSA_WITH_AES_256_CBC_SHA(0x0035), TLS_RSA_WITH_AES_128_CBC_SHA(0x002F), TLS_EMPTY_RENEGOTIATION_INFO_SCSV(0x00FF)]",
  "compression methods" : "00",
  "extensions"          : [
    "server_name (0)": {
      type=host_name (0), value=xxx
    },
    "status_request (5)": {
      "certificate status type": ocsp
      "OCSP status request": {
        "responder_id": <empty>
        "request extensions": {
          <empty>
        }
      }
    },
    "supported_groups (10)": {
      "versions": [x25519, secp256r1, secp384r1, secp521r1, x448, ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192]
    },
    "ec_point_formats (11)": {
      "formats": [uncompressed]
    },
    "signature_algorithms (13)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]
    },
    "signature_algorithms_cert (50)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]
    },
    "status_request_v2 (17)": {
      "cert status request": {
        "certificate status type": ocsp_multi
        "OCSP status request": {
          "responder_id": <empty>
          "request extensions": {
            <empty>
          }
        }
      }
    },
    "extended_master_secret (23)": {
      <empty>
    },
    "supported_versions (43)": {
      "versions": [TLSv1.3, TLSv1.2, TLSv1.1, TLSv1]
    },
    "psk_key_exchange_modes (45)": {
      "ke_modes": [psk_dhe_ke]
    },
    "key_share (51)": {
      "client_shares": [  
        {
          "named group": x25519
          "key_exchange": {
            0000: 3C 66 CB BA 20 25 F8 AD   39 51 1E 7D 3F B7 22 0F  <f.. %..9Q..?.".
            0010: E6 DD 72 1A A8 29 57 3E   E3 20 E8 20 80 00 8F 5F  ..r..)W>. . ..._
          }
        },
      ]
    }
  ]
}

"ServerHello": {
  "server version"      : "TLSv1",
  "random"              : "5E 69 ED 04 D0 13 E5 27 7C BC F1 A7 4F AA 29 49 88 15 C7 22 2B AE CA 3E 4A 34 F0 B4 F4 61 5C 2F",
  "session id"          : "5E 69 ED 04 B3 7D 7A 47 98 84 8E A5 C0 D8 9A CE 46 03 C0 CA C5 A9 23 9E CD 22 9C 1F E2 63 49 B7",
  "cipher suite"        : "TLS_DHE_RSA_WITH_AES_128_CBC_SHA(0x0033)",
  "compression methods" : "00",
  "extensions"          : [
    "renegotiation_info (65,281)": {
      "renegotiated connection": [<no renegotiated connection>]
    }
  ]
}

...Server certificate deleted...

"DH ServerKeyExchange": {
  "parameters": {
    "dh_p": {
      0000: E9 E6 42 59 9D 35 5F 37   C9 7F FD 35 67 12 0B 8E  ..BY.5_7...5g...
      0010: 25 C9 CD 43 E9 27 B3 A9   67 0F BE C5 D8 90 14 19  %..C.'..g.......
      0020: 22 D2 C3 B3 AD 24 80 09   37 99 86 9D 1E 84 6A AB  "....$..7.....j.
      0030: 49 FA B0 AD 26 D2 CE 6A   22 21 9D 47 0B CE 7D 77  I...&..j"!.G...w
      0040: 7D 4A 21 FB E9 C2 70 B5   7F 60 70 02 F3 CE F8 39  .J!...p..`p....9
      0050: 36 94 CF 45 EE 36 88 C1   1A 8C 56 AB 12 7A 3D AF  6..E.6....V..z=.
    },
    "dh_g": {
      0000: 30 47 0A D5 A0 05 FB 14   CE 2D 9D CD 87 E3 8B C7  0G.......-......
      0010: D1 B1 C5 FA CB AE CB E9   5F 19 0A A7 A3 1D 23 C4  ........_.....#.
      0020: DB BC BE 06 17 45 44 40   1A 5B 2C 02 09 65 D8 C2  .....ED@.[,..e..
      0030: BD 21 71 D3 66 84 45 77   1F 74 BA 08 4D 20 29 D8  .!q.f.Ew.t..M ).
      0040: 3C 1C 15 85 47 F3 A9 F1   A2 71 5B E2 3D 51 AE 4D  <...G....q[.=Q.M
      0050: 3E 5A 1F 6A 70 64 F3 16   93 3A 34 6D 3F 52 92 52  >Z.jpd...:4m?R.R
    },
    "dh_Ys": {
      0000: 65 6B 34 FD 17 66 20 CA   13 F4 7A 4C C6 0B 9C DE  ek4..f ...zL....
      0010: 0F 07 40 A2 95 6F D3 D1   91 86 5F ED 4F D4 AA 52  ..@..o...._.O..R
      0020: 6F C0 31 84 02 8B AF F0   CE FA D2 92 D1 BA E8 99  o.1.............
      0030: BF BF 80 AF 93 D1 B7 2C   45 36 94 14 0B FD 95 AA  .......,E6......
      0040: A6 07 52 26 60 0A CA 27   61 16 C9 5D 55 13 D9 9C  ..R&`..'a..]U...
      0050: 43 4B D5 47 AE 39 8B 2E   A6 5A A2 25 86 11 34 7A  CK.G.9...Z.%..4z
    },
  },
  "signature": {
    0000: 3E D4 F6 7C 57 EC CA CF   FA DC 5C 18 01 E3 AF C2  >...W.....\.....
    0010: 03 A0 94 58 51 9E DE 6B   5B 05 FB BD 9C A5 96 A5  ...XQ..k[.......
    0020: F3 72 D0 A8 20 3A C7 F9   85 5E 2D EF 87 97 2F 38  .r.. :...^-.../8
    0030: CD 0E 10 BD 0C FD 99 C3   96 A7 BD B8 40 E4 79 74  ............@.yt
    0040: 17 8A 6E DC B3 E7 8B 32   64 FD 97 4D 0E F0 F5 0C  ..n....2d..M....
    0050: C6 EC 86 44 83 DD A0 EB   8C 72 F1 70 DE 94 5D 74  ...D.....r.p..]t
    0060: 97 E7 B6 AA B2 C0 9D 97   F8 CD DF 2B 55 33 A6 A4  ...........+U3..
    0070: 54 87 AE AD 62 FF 21 34   68 C4 09 62 67 D1 4E 92  T...b.!4h..bg.N.
    0080: BD D7 0E DC 86 31 3B D8   16 2A 19 70 7A C7 08 42  .....1;..*.pz..B
    0090: 51 61 CC A5 E6 41 8E 56   8C 77 6A 88 39 51 7E C3  Qa...A.V.wj.9Q..
    00A0: 6E E9 2F 74 65 A6 55 2B   0B 2A 58 DE C8 0C 7D 5D  n./te.U+.*X....]
    00B0: 85 06 4C 8C 53 EF EE 46   0D 20 00 7E 0A 59 7A 2E  ..L.S..F. ...Yz.
    00C0: 5F 97 F2 9C FC C2 7E 7C   6A 96 21 E5 C0 4F 53 0F  _.......j.!..OS.
    00D0: 89 42 7F 3A 02 1D 2C ED   B9 B0 6C 37 D4 D8 79 58  .B.:..,...l7..yX
    00E0: D9 F3 84 CE 82 67 B9 5D   D1 76 BD 32 5D 37 6D 81  .....g.].v.2]7m.
    00F0: C1 4D 19 D1 20 95 0C 20   A2 96 B0 BF DD 72 50 C8  .M.. .. .....rP.
  }
}

我在这里看到两件事:

  1. 服务器使用TLSv1
  2. 服务器使用DHE作为密钥交换算法,其密钥大小太小(768位),这导致出现上述<code>SSLHandshakeException</code>异常

所以我创建了一个自定义java。我允许DH密钥大小为768位的安全文件。属性<code>jdk.tls。disabledAlgorithms是从主java复制的。安全文件和DH完全相同。

jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 768, EC keySize < 224, 3DES_EDE_CBC, anon, NULL

现在SSL握手可以工作,但服务器设置了TLSv1.2和TLS_AES_256_GCM_SHA384密码,而不是TLS_ DHE_。

"ClientHello": {
  "client version"      : "TLSv1.2",
  "random"              : "64 2E 04 AA 0D 6E 5D 53 D9 4A 5B B8 62 06 06 1C E3 54 BA 6F 7C 68 DE AC 3F B5 BD E1 7E 71 96 A6",
  "session id"          : "A4 A8 1A BD 44 39 6C 2C 9E 88 E3 72 B9 57 87 D7 CF 0C 7D E6 0F 31 B5 89 BE 61 C9 55 3D 22 E7 37",
  "cipher suites"       : "[TLS_AES_128_GCM_SHA256(0x1301), TLS_AES_256_GCM_SHA384(0x1302), TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(0xC02C), TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(0xC02B), TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xC030), TLS_RSA_WITH_AES_256_GCM_SHA384(0x009D), TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384(0xC02E), TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384(0xC032), TLS_DHE_RSA_WITH_AES_256_GCM_SHA384(0x009F), TLS_DHE_DSS_WITH_AES_256_GCM_SHA384(0x00A3), TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(0xC02F), TLS_RSA_WITH_AES_128_GCM_SHA256(0x009C), TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256(0xC02D), TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256(0xC031), TLS_DHE_RSA_WITH_AES_128_GCM_SHA256(0x009E), TLS_DHE_DSS_WITH_AES_128_GCM_SHA256(0x00A2), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384(0xC024), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(0xC028), TLS_RSA_WITH_AES_256_CBC_SHA256(0x003D), TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384(0xC026), TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384(0xC02A), TLS_DHE_RSA_WITH_AES_256_CBC_SHA256(0x006B), TLS_DHE_DSS_WITH_AES_256_CBC_SHA256(0x006A), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(0xC00A), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xC014), TLS_RSA_WITH_AES_256_CBC_SHA(0x0035), TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA(0xC005), TLS_ECDH_RSA_WITH_AES_256_CBC_SHA(0xC00F), TLS_DHE_RSA_WITH_AES_256_CBC_SHA(0x0039), TLS_DHE_DSS_WITH_AES_256_CBC_SHA(0x0038), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256(0xC023), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(0xC027), TLS_RSA_WITH_AES_128_CBC_SHA256(0x003C), TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256(0xC025), TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256(0xC029), TLS_DHE_RSA_WITH_AES_128_CBC_SHA256(0x0067), TLS_DHE_DSS_WITH_AES_128_CBC_SHA256(0x0040), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(0xC009), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(0xC013), TLS_RSA_WITH_AES_128_CBC_SHA(0x002F), TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA(0xC004), TLS_ECDH_RSA_WITH_AES_128_CBC_SHA(0xC00E), TLS_DHE_RSA_WITH_AES_128_CBC_SHA(0x0033), TLS_DHE_DSS_WITH_AES_128_CBC_SHA(0x0032)]",
  "compression methods" : "00",
  "extensions"          : [
    "server_name (0)": {
      type=host_name (0), value=xxx
    },
    "status_request (5)": {
      "certificate status type": ocsp
      "OCSP status request": {
        "responder_id": <empty>
        "request extensions": {
          <empty>
        }
      }
    },
    "supported_groups (10)": {
      "versions": [secp256r1, secp384r1, secp521r1, sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, secp256k1, ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192]
    },
    "ec_point_formats (11)": {
      "formats": [uncompressed]
    },
    "signature_algorithms (13)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]
    },
    "signature_algorithms_cert (50)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]
    },
    "status_request_v2 (17)": {
      "cert status request": {
        "certificate status type": ocsp_multi
        "OCSP status request": {
          "responder_id": <empty>
          "request extensions": {
            <empty>
          }
        }
      }
    },
    "extended_master_secret (23)": {
      <empty>
    },
    "supported_versions (43)": {
      "versions": [TLSv1.3, TLSv1.2, TLSv1.1, TLSv1]
    },
    "psk_key_exchange_modes (45)": {
      "ke_modes": [psk_dhe_ke]
    },
    "key_share (51)": {
      "client_shares": [  
        {
          "named group": secp256r1
          "key_exchange": {
            0000: 04 70 89 F8 9D 7D 5E 07   DC 46 E3 57 5C 24 02 0A  .p....^..F.W\$..
            0010: C0 10 53 20 03 ED 94 F0   EC 07 64 BE 8C B7 93 D1  ..S ......d.....
            0020: 19 97 11 81 24 A5 8F 93   46 B3 AE A6 F0 5F 3E E6  ....$...F...._>.
            0030: EA 4B 11 B8 C5 45 D0 8E   CD AF FB 3A BF 50 B0 5E  .K...E.....:.P.^
            0040: 56 
          }
        },
      ]
    },
    "renegotiation_info (65,281)": {
      "renegotiated connection": [<no renegotiated connection>]
    }
  ]
}

"ServerHello": {
  "server version"      : "TLSv1.2",
  "random"              : "AD E4 31 7A 81 AF 56 73 AC 4F F0 8B 20 D7 6D 6B F9 53 94 97 03 5C 9F 1E B8 7D 15 01 CF 5D 41 A1",
  "session id"          : "A4 A8 1A BD 44 39 6C 2C 9E 88 E3 72 B9 57 87 D7 CF 0C 7D E6 0F 31 B5 89 BE 61 C9 55 3D 22 E7 37",
  "cipher suite"        : "TLS_AES_256_GCM_SHA384(0x1302)",
  "compression methods" : "00",
  "extensions"          : [
    "supported_versions (43)": {
      "selected version": [TLSv1.3]
    },
    "key_share (51)": {
      "server_share": {
        "named group": secp256r1
        "key_exchange": {
          0000: 04 95 DD 75 15 26 7D 43   4D FF 75 DE 93 55 13 2D  ...u.&.CM.u..U.-
          0010: 2B 80 45 02 C1 12 11 9B   68 89 19 BC 2E 06 36 4B  +.E.....h.....6K
          0020: 07 44 86 54 F2 42 1F 0E   6E D6 13 1D 10 6E C8 61  .D.T.B..n....n.a
          0030: DC E1 74 97 E1 29 3F 5A   2A FE 42 31 1B 85 C8 A9  ..t..)?Z*.B1....
          0040: C4 
        }
      },
    }
  ]
}

有人能解释一下jdk.tls.disabledAlgorithms中的这种变化是如何迫使服务器更改TLS版本和密码的吗?

共有1个答案

殳阳飙
2023-03-14

首先,你的第二个例子是TLS1.3而不是1.2。请记住,1.3在记录头和Hello fixed字段中仍然使用1.2的版本代码(0x0303),只将实际版本放在扩展43中,您可以在ServerHello中看到。此外,所选的密码套件TLS_AES_256_GCM_SHA384(0x1302)是仅1.3版本的密码套件;事实上,所有密码套件代码0x13xx都只有1.3。

在您的第一个和第二个示例中,ClientHello之间有很多差异。提供的密码套件列表不同,支持的组列表(扩展10)不同,提供的密钥共享是secp256r1而不是x25519,rfc5746使用扩展与SCSV。

你确定你的第二个例子是Java 13?我几乎可以将您的第一个示例与我的Oracle 13 . 0 . 0 OOTB版本相匹配,唯一意想不到的区别是我在supported_groups中获得了额外的EC曲线,这可能是因为您的版本或配置使用了不同的底层提供程序。OTOH你的第二个例子更接近我的Java 11结果,再次OOTB:密码套件匹配,除了我有rfc5746 SCSV,而你有扩展,IIRC可能是由于一个属性设置;组和方案匹配(11.0.5中除外)除了我把ecdsa_secp521r1错码为ecdsa_secp512r1这明显是个bug(并在my 12和13中修复)。

然而,这并不能解释不同的服务器响应,因为它们都是有效的TLS1.3产品。服务器似乎对您的第二个示例(如my Java 11(和12))提供secp256r1的keyshare做出了反应,而您的第一个示例(如my Java 13)提供x25519。可能服务器不喜欢x25519,所以它退回到1.0,而不是1.2(这仍然允许(FF)DHE与任意的非rfc7919组,并且给定这个ClientHello也与服务器选择的secp 256 r 1 ECD he)是愚蠢的,如果不是愚蠢的话。当然,当1.3服务器只不喜欢客户机keyshare时,正确的做法是发送HelloRetryRequest,这是Java (11以上版本)支持的,应该会产生使用secp256r1和AES256GCM的1.3连接。

PS:如果此服务器可公开访问,您可以尝试在其上 https://www.ssllabs.com/ssltest,看看会发现什么。

 类似资料:
  • 问题内容: 我的页面中有图像,并且在CSS选择器之前使用:bestyle。 图片是动态的,因此没有固定的宽度;所以我需要动态设置:before规则的宽度。 我想在客户端使用JQuery做到这一点。 假设: 如何使用JQuery 仅更改带有选择器的类的width属性(如果没有选择器,则不能更改一个类的width属性)? 问题答案: 我认为没有直接访问伪类规则的jQuery方法,但是您总是可以在文档的

  • 我的nginx版本是: 我的应用程序安装在 当我访问 它工作正常。这是因为服务器根设置为; 现在我想使用。当我将服务器根目录更改为并键入上述URL时,它会使用http 302重定向到 这可能是什么原因? 然后,它将应用我的应用程序中的其他规则。conf并给出一个404。 我在访问日志中看到: 我的conf文件是:

  • 我的Kubernetes集群运行在谷歌云下。我有部署运行端口443和LoadBalancer公开它到互联网。 我是这样创建的: 运行此命令后,loadbalancer将指向部署。现在,我创建了,并希望更改loadbalancer以指向新的部署()。 注意:删除和重新创建部署是释放外部IP地址,我想避免它。 如何在不丢失外部IP的情况下修补现有服务以指向另一个部署?

  • 问题内容: 我在本地计算机上使用。在我们的网络服务器上,我们有。我们的服务器是共享服务器。所以我想通过文件更改我们服务器上的php版本。有可能做到吗?如果是,该怎么办? 问题答案: 要切换到PHP 4.4: 要切换到PHP 5.0: 要切换到PHP 5.1: 要切换到PHP 5.2: 要切换到PHP 5.3,请执行以下操作: 要切换到PHP 5.4: 要切换到PHP 5.5: 要切换到PHP 5.

  • 问题内容: 我们的IT环境中有许多Red Hat Linux服务器。我的团队成员要求我编写一个脚本(最好是Shell脚本)以使用SSH一次更改每个用户的密码。 我试图找到一种解决方案,但是我发现许多脚本都在使用Expect。我们没有在服务器上安装Expect,系统管理员拒绝让我们安装它。此外,用户没有root访问权限,从而或无法使用。 有什么方法可以编写脚本,以便用户可以运行该脚本并更改列表中所有

  • 本文向大家介绍属性选择器和伪类选择器的优先级?相关面试题,主要包含被问及属性选择器和伪类选择器的优先级?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 属性选择器和伪类选择器优先级相同