Я понимаю, что крипто-политика является FIPS или FIPS: No-enforce-EMS, которые клиент предложит EMS. Клиент Java, использующий JSSE, должен поддерживать EMS, который поддерживался с JDK 11. < /p>
(1) Почему клиент Java не предлагает расширение EMS? < /P>
Но java -тест -клиент запускается с отладкой от отладки отчеты: < /p>
Код: Выделить всё
java -Djavax.net.debug=ssl,handshake -cp . SSLTest 127.0.0.1 8095
ExtendedMasterSecretExtension.java:123|Ignore unavailable extended_master_secret extension
< /code>
больше информации: < /p>
$ java --version
openjdk 17.0.14 2025-01-21 LTS
OpenJDK Runtime Environment (Red_Hat-17.0.14.0.7-1) (build 17.0.14+7-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-17.0.14.0.7-1) (build 17.0.14+7-LTS, mixed mode,
sharing)
$ update-crypto-policies --show
FIPS
$ cat /etc/redhat-release
Red Hat Enterprise Linux release 9.5 (Plow)
< /code>
Программа тестирования, которую я использую, ниже. Я составляю его и передаю файл класса в контейнер. Это также нуждается в запуске SSL -сервера. Я могу обновить этот вопрос с помощью некоторых команд для запуска сервера SSL, но я надеюсь, что у кого-то просто есть объяснение.import javax.net.ssl.*;
public class SSLTest {
public static void main(String[] args) {
if (args.length != 2) {
System.err.println("Usage: java -cp . SSLTest crowd 8095");
}
var host = args[0];
var port = Integer.parseInt(args[1]);
try {
System.out.println("Connecting to " + host + ":" + port);
// Use the default SSL socket factory (ensure your truststore is set up if needed)
SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
try (SSLSocket socket = (SSLSocket) factory.createSocket(host, port)) {
// Start the handshake manually to see detailed debug info.
socket.startHandshake();
System.out.println("SSL handshake completed successfully.");
}
} catch (Exception e) {
System.err.println("SSL handshake failed: " + e.getMessage());
e.printStackTrace();
}
}
}
< /code>
Запуск этого подобного, дает клиентуэлло ниже. Я уменьшил схемы, чтобы сделать клиент, и соответствовать набору шифров и подписи, которые OpenSSL S_CLIENT удается в переговорах.[root@ubi9fips-ssl-test-9-5 /]# java -Djdk.tls.client.protocols=TLSv1.2 -Djavax.net.debug=ssl,handshake -Djdk.tls.signatureSchemes=rsa_pkcs1_sha384 -Djdk.tls.client.cipherSuites=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 -cp . SSLTest 127.0.0.1 4433 2>&1
javax.net.ssl|DEBUG|10|main|2025-02-25 21:19:07.913 GMT|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe6144
javax.net.ssl|DEBUG|10|main|2025-02-25 21:19:07.913 GMT|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe8192
javax.net.ssl|INFO|10|main|2025-02-25 21:19:07.913 GMT|AlpnExtension.java:182|No available application protocols
javax.net.ssl|DEBUG|10|main|2025-02-25 21:19:07.913 GMT|SSLExtensions.java:272|Ignore, context unavailable extension: application_layer_protocol_negotiation
javax.net.ssl|DEBUG|10|main|2025-02-25 21:19:07.914 GMT|ExtendedMasterSecretExtension.java:123|Ignore unavailable extended_master_secret extension
javax.net.ssl|DEBUG|10|main|2025-02-25 21:19:07.914 GMT|SSLExtensions.java:272|Ignore, context unavailable extension: extended_master_secret
javax.net.ssl|DEBUG|10|main|2025-02-25 21:19:07.914 GMT|SessionTicketExtension.java:353|Stateless resumption supported
javax.net.ssl|DEBUG|10|main|2025-02-25 21:19:07.920 GMT|ClientHello.java:639|Produced ClientHello handshake message (
"ClientHello": {
"client version" : "TLSv1.2",
"random" : "6CBDF2CC3EA1A3DCBC9318AE39E2EE1B0CD2B1F4F5B6B8FD05EB5B5640FC2A81",
"session id" : "",
"cipher suites" : "[TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xC030)]",
"compression methods" : "00",
"extensions" : [
"status_request (5)": {
"certificate status type": ocsp
"OCSP status request": {
"responder_id":
"request extensions": {
}
}
},
"supported_groups (10)": {
"versions": [secp256r1, secp384r1, secp521r1]
},
"ec_point_formats (11)": {
"formats": [uncompressed]
},
"status_request_v2 (17)": {
"cert status request": {
"certificate status type": ocsp_multi
"OCSP status request": {
"responder_id":
"request extensions": {
}
}
}
},
"session_ticket (35)": {
},
"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, ecdsa_sha224, rsa_sha224]
},
"supported_versions (43)": {
"versions": [TLSv1.2]
},
"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, ecdsa_sha224, rsa_sha224]
},
"renegotiation_info (65,281)": {
"renegotiated connection": []
}
]
}
)
javax.net.ssl|DEBUG|10|main|2025-02-25 21:19:07.922 GMT|Alert.java:238|Received alert message (
"Alert": {
"level" : "fatal",
"description": "handshake_failure"
}
)
javax.net.ssl|ERROR|10|main|2025-02-25 21:19:07.922 GMT|TransportContext.java:375|Fatal (HANDSHAKE_FAILURE): Received fatal alert: handshake_failure
Подробнее здесь: https://stackoverflow.com/questions/794 ... k17-in-con