2016-08-17 11 views
10

Mam problem z konfiguracją ssl, moja konfiguracja jest następująca:Wiosna uszkodzony po aktualizacji do 1.4.0 od 1.3.x

server.port=8449 
# self signed cert with CN=localhost used for https method tests 
server.ssl.key-store=keystore.p12 
server.ssl.key-password=password 
server.ssl.key-alias=some-alias 
server.ssl.key-store-type=PKCS12 

Jeśli używany z wersją 1.3.7 buta wiosennej wszystko działa. Jeśli zaktualizowany do 1.4.0 na stronie klienta uzyskać:

javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 

at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:287) 
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255) 
at org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:700) 
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
at org.glassfish.jersey.internal.Errors.process(Errors.java:228) 
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444) 
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:696) 
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:448) 

i nazywając port SSL z Chrome wyników:

Klient i serwer nie obsługuje wspólną wersję protokołu SSL lub szyfrem apartament. Prawdopodobnie dzieje się tak, gdy serwer potrzebuje RC4, który nie jest już uważany za bezpieczny.

Podobny błąd również z przeglądarki Firefox.

Jak już mówiłem, jedyną rzeczą, która różni się w konfiguracji, jest wersja wiosennego rozruchu. Czy brakuje mi czegoś w konfiguracji, aby mogło być używane z nowszą wersją wiosennego rozruchu?

Z góry dzięki Pozdrawiam!

P.S. Nie znam się dobrze na zagadnieniach związanych z językiem ssl, więc spróbuj wyjaśnić to za nieco prostsze.

+3

Nie należy trzeba skonfigurować SSL inaczej 1.4. Właśnie próbowałem [próbka Boot's Tomcat SSL] (https://github.com/spring-projects/spring-boot/tree/v1.4.0.RELEASE/spring-boot-samples/spring-boot-sample-tomcat- ssl) i działa zarówno z przeglądarkami Safari, jak i Chrome. Czy możesz podać małą próbkę, która odtwarza problem? –

+0

Dzięki za przykładowy link pomógł mi rozwiązać problem :) Problem był z tym, jak został skonfigurowany, z Tomcat 8.0.x konfiguracja działała dobrze, ale z Tomcat 8.5.4 wygląda (może jestem w błędzie o tym) że musisz podać jawnie hasło key-store-password, a nie tylko hasło-klucz, jak to było w moim przykładzie. – Kristaps

+0

Mam bardzo podobny problem, gdy aktualizując Spring Boot z 1.3 na 1.4, straciłem wszystkie szyfry ECDHE, pozostaję tylko z DHE. Jeśli przywrócę Tomcat do wersji 8.0.x, wszystko będzie działać ponownie.Podaję zarówno pliki kluczy, jak i hasła kluczy bez skutku. –

Odpowiedz

3

udało mi się rozwiązać ten problem dzięki tej Boot's Tomcat SSLsample dostarczonych przez Andy

server.port=8449 
# self signed cert with CN=localhost used for https method tests 
server.ssl.key-store=keystore.p12 
server.ssl.key-password=password 
server.ssl.key-alias=some-alias 
server.ssl.key-store-type=PKCS12 

Domyślam (mogę się mylić o tym), że Tomcat 8.5.4 wymaga określony server.ssl.key-store-password=password to nie tyle ze tylko server.ssl.key-password są określone tak po zaktualizowaniu konfiguracji wymyśliłem coś takiego:

server.port=8449 
# self signed cert with CN=localhost used for https method tests 
server.ssl.key-store=keystore.p12 
server.ssl.key-store-password=changeit 
server.ssl.key-alias=some-alias 
server.ssl.key-password=changeit 
server.ssl.key-store-type=PKCS12 

a teraz działa zgodnie z przeznaczeniem :) nadzieję, że to pomaga więc odpowiedź ktoś inny.

P.S. Tak, wiem, że używanie tego samego hasła dla danego klucza i ogólnego sklepu jest złe, ale jest to tylko magazyn kluczy testowych.

+0

Dziękuję bardzo za podzielenie się tym. Mam tendencję do zapominania, jak tworzę magazyn kluczy i że w rzeczywistości są dwa różne hasła, także jeśli hasło do magazynu kluczy jest nieprawidłowe, ale jeśli brakuje drugiego, nie ma ostrzeżenia, błędu, nic w plikach logów . – Yashima

0

Dla mnie wszystko działało na moim lokalnym komputerze, ale kiedy próbowałem uruchomić Spring Boot Server na moim serwerze Linux (Amazon AWS EC2), dostałem ten sam błąd. Nie otrzymałem tego błędu podczas korzystania ze Spring Boot 1.3.x.

Byłem w stanie rozwiązać ten problem, instalując Oracle JDK zamiast otwartego JDK, który był preinstalowany na serwerze.

To jest przypomnienie, że następuje: https://gist.github.com/rtfpessoa/17752cbf7156bdf32c59

Powiązane problemy