Self signed ssl certificate και Java

Κάποιες φορές και ειδικά σε test περιβάλλοντα χρειάστηκε να κάνω access από java, web servers με ssl τα οποία όμως είχαν self-signed digital certificates. Στην περίπτωση αυτή εμφανίζεται το exception "javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: No trusted certificate found"
Επειδή δεν βρήκα κάποιο γρήγορο document παραθέτω το παρακάτω.

Έστω ότι θέλω με HttpRequest να καλέσω ένα url με ssl που έχει φτιαχτεί όπως στο Linux Home Server HOWTO (το συγκεκριμένο site είναι καταπληκτικό για κάποιον που θέλει να φτιάξει προσωπικό site σαν το δικό μου).

1. Από κάποιον ΙΕ import το certificate από το https://xxxxx, ως εξής : από το popup "Security Alert" -> View Certificate -> Install Certificate -> Next -> check το "Automatically select the ..." -> Next ->Finish -> "Do you want to install .." ->Yes -> "The import was successful"
2. Export από τον IE σε file: Tools -> Internet Options -> Content ->Certificates -> Trusted Root Certification Autorities Θα εμφανισθεί μία εγγραφή στη στήλη Issued To xxxx.xx (όπως το server name του server https://xxxxx) αφού επιλεγεί -> Export -> Next -> Base-64 ... -> Next -> στο file name κάτι π.χ c:\tmp\ssl.cer -> Next -> Finish -> "The export was successful"
3. Delete το certificate από τον IE (δεν το χρειαζόμαστε πια)
4. cd στο $JAVA_HOME\bin
5. Δημιουργία του keystore αρχείου με keytool -import -alias mysite -file "c:\tmp\ssl.cer" -keystore "c:\tmp\keystore". Στο password δίνουμε κάποιο password και στο "Trust this certificate" yes.
6. Προσθέτουμε στο java πρόγραμμα το entry -Djavax.net.ssl.trustStore="C:\\tmp\\keystore"
Αν όλα πήγαν καλά το πρόγραμμα θα λειτουργεί μια χαρά.

About this Entry

This page contains a single entry by Yiannis Tsesmelis published on January 15, 2006 4:33 PM.

Dictionary Tooltip - Firefox Extension was the previous entry in this blog.

SQL Pretty Printer is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.