Avatar billede lundsfryd Nybegynder
14. april 2002 - 19:29 Der er 4 kommentarer og
2 løsninger

JSSE: "no cipher suites in common"

Jeg er i gang med at bygge en lille webserver i Java, og har behov for, at den understøtter SSL.

Jeg har fundet frem til og installeret JSSE. Jeg er derefter gået i gang med at køre demoen i http://www.onjava.com/pub/a/onjava/2001/05/03/java_security.html for på den måde at lære, hvordan man bruger JSSE.

Når jeg laver et self-signed certifikat som foreslået i artiklen, kører demoen fint, og den svarer på HTTPS-requests fra både IE og Netscape. Nu kommer problemet: Jeg skal have det op at køre på et "rigtigt" SSL-server-certifikat - og det kan jeg ikke få til at virke.

Flg. genererer det self-signede cert (som virker fint - er taget fra ovennævnte artikel):

keytool -genkey -keystore certs -keyalg rsa -alias jamie -storepass serverkspw -keypass serverpw

Til at importere mit Thawte-udstedte certifikat, har jeg forsøgt mig med

keytool -import -file certifikatfil.crt -keystore certs -keyalg rsa -alias certalias -storepass etpassword -keypass etpassword

hvilket kører uden fejl.

Demo-programmet kører også uden fejl, men når jeg connecter fra browser, kommer den med flg.:

javax.net.ssl.SSLException: no cipher suites in common
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.ssl.ServerHandshaker.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.ssl.ServerHandshaker.b([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.ssl.ServerHandshaker.processMessage([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.ssl.Handshaker.process_record([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.ssl.AppInputStream.read([DashoPro-V1.2-120198])
at java.io.FilterInputStream.read(FilterInputStream.java:69)
at HTTPInputStream.readLine(HTTPInputStream.java:14)
at HTTPInputStream.getRequest(HTTPInputStream.java:31)
at HTTPServerThread.run(HTTPServer.java:69)


Hvad skyldes denne fejl - og hvad er løsningen? :)
Avatar billede carstenknudsen Nybegynder
14. april 2002 - 20:56 #1
Fejlen skyldes at Java og JSSE og browseren
ikke kan blive enige om hvordan de udveksler
information. Du benytter RSA algoritmen,
prøv at bruge en anden i stedet. Du kan
prøve med DESede eller en anden algoritme
for at se om det fjerne problemet. Kig
efter hvilke -alg argumenter du kan benytte.
Avatar billede carstenknudsen Nybegynder
14. april 2002 - 20:56 #2
-alg skulle være -keyalg
Avatar billede lundsfryd Nybegynder
14. april 2002 - 21:06 #3
Det har også strejfet mig, men som man kan se nederst på nedenstående side, skal det faktisk være RSA, hvis man vil kunne connecte gennem en standardbrowser.

http://java.sun.com/products/jsse/FAQ.html#19

Jeg har alligevel prøvet forskellige muligheder (uden held).
Avatar billede tommer Nybegynder
31. august 2002 - 21:47 #4
jeg har helt samme problem...
har i evt fundet en løsning ???
kan det passe at den jsse som er udenfor usa og canada er begrænset???
og skal man ikke have en ssl service provider ??
jeg ved det ikke..hjæææææp ;-)
Avatar billede lundsfryd Nybegynder
02. september 2002 - 01:47 #5
Jeg ved det heller ikke, jeg har opgivet :-(
Avatar billede tommer Nybegynder
02. september 2002 - 08:37 #6
ååånej kom nu frisk ;-)
jeg prøver da videre lidt endnu.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester