Mam usługę WWW https działającą w java 7. Muszę wprowadzić zmiany, aby ta usługa akceptowała tylko połączenie tls1.2 i odrzucała ssl3 , tls1.0 i tls1.1.Jak zmusić serwer java do akceptowania tylko tls 1.2 i odrzucania połączeń tls 1.0 i tls 1.1
Dodałem następujący parametr java, tak aby tls1.2 miał najwyższy priorytet.
-Dhttps.protocols=TLSv1.2
, ale akceptuje również połączenia tls1.0 z klientów java. jeśli klient działa również z powyższym parametrem java, połączenie to tls1.2, ale jeśli klient działa bez tego parametru, połączenia mają wartość tls1.0.
Zrobiłem trochę zabawy wokół pliku java.security w folderze jdk/jre/lib/security.
Obecnie mam następujące algorytmy niepełnosprawne:
jdk.certpath.disabledAlgorithms= MD2, MD4, MD5, SHA224, DSA, EC keySize < 256, RSA keySize < 2048, SHA1 keysize < 224
jdk.tls.disabledAlgorithms=DSA, DHE, EC keySize < 256, RSA keySize < 2048, SHA1 keysize < 224
używam Java 7, zaktualizuj 79. Nie jestem skłonny do przechwycenia każdego połączenia i sprawdzanie wersji TLS.
Mój certyfikat serwera jest 2048-bitowy wygenerowany za pomocą MD5 z algorytmem RSA.
Jeśli lista wyłączonych algorytmów ma RSA w miejsce klucza RSA Rozmiarówka < 2048, otrzymuję komunikat SSLHandShakeError z komunikatem o błędzie: brak wspólnych zestawów szyfrów.
Mój program testowy jest uruchomiony serwer HTTP z adresem URL: http://www.herongyang.com/JDK/HTTPS-HttpsEchoer-Better-HTTPS-Server.html
proszę o pomoc jak zrobić Java zaakceptować tls tylko 1,2 połączeń.
Czy działa 'SSLContext.getInstance (" TLSv1.2 ")'? –