Μερικές γρήγορες οδηγίες για να ενεργοποιήσεις το SSL στον Tomcat για να πειραματιστείς με HTTPS:
1. Ενεργοποίησε τον SSL connector στο server.xml αρχείο του Tomcat, βγάζοντας τα comments από το παρακάτω
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />
2. Θα χρειαστείς ένα certificate ώστε να το χρησιμοποιήσει ο Tomcat στο SSL. Μιας και απλά θέλουμε να πειραματιστούμε δε μας ενδιαφέρει το certificate να είναι “κανονικό” (σ.σ. να προέρχεται από κάποιο publicly trusted CA = να πληρώσουμε για να το αγοράσουμε) οπότε θα χρησιμοποιήσουμε το keytool της Java για να φτιάξουμε ένα certificate μόνοι μας.
Ξεκινάμε με το να φτιάξουμε το public/private keypair μας:
C:\>keytool -genkey -alias tomcat -keypass changeit -keyalg RSA Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: localhost What is the name of your organizational unit? [Unknown]: What is the name of your organization? [Unknown]: What is the name of your City or Locality? [Unknown]: What is the name of your State or Province? [Unknown]: What is the two-letter country code for this unit? [Unknown]: Is CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct? [no]: yes
Στη συνέχεια κάνουμε generate ένα CRS ως PKCS#10 certificate request:
C:\>keytool -export -alias tomcat -keypass changeit -file tomcat.crt Enter keystore password: Certificate stored in file <tomcat.crt>
Και τέλος κάνουμε import το certificate (που υποτίθεται μας έκανε sign κάποιο root CA) στα trustes certificates μας:
C:\>keytool -import -file tomcat.crt -keypass changeit -keystore %JAVA_HOME%/jre/lib/security/cacerts Enter keystore password: Re-enter new password: Owner: CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown Issuer: CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown Serial number: 492f8c56 Valid from: Fri Nov 28 19:14:46 EET 2008 until: Thu Feb 26 19:14:46 EET 2009 Certificate fingerprints: MD5: 40:00:2F:E0:FE:9E:1A:9B:A8:20:38:A0:88:04:FF:15 SHA1: 81:09:2F:33:8F:35:5A:1E:2C:21:D3:89:58:EF:B8:C7:DE:5C:34:75 Signature algorithm name: SHA1withRSA Version: 3 Trust this certificate? [no]: yes Certificate was added to keystore
Μερικά πράγματα που πρέπει να προσέξεις:
α) Τα keystores του JRE σου βρίσκονται κάτω από το home folder του χρήστη με τον οποίο έχεις κάνει login και στο αρχείο με όνομα .keystore. Σε Windows XP, για παράδειγμα, θα βρεις το αρχείο αυτό κάτω από το C:\Documents and Settings\Administrator αν έχει κάνει login με το χρήστη Administrator.
β) Τα trusted certificates του JRE σου βρίσκονται κάτω από το %JAVA_HOME%/jre/lib/security/ folder και στο αρχείο με όνομα cacerts.
γ) Ένα πολύ συνηθισμένο λάθος που ενώ έχεις κάνει όλα τα παραπάνω σωστά αλλά συνεχίζει να μην παίζει το SSL στον Tomcat, είναι ότι ο Tomcat χρησιμοποιεί διαφορετικό JRE/JDK από αυτό που χρησιμοποίησες για να φτιάξεις τo certificate (ειδικά αν ξεκινάς τον Tomcat μέσα από το IDE σου στο οποίο ενδεχομένως έχεις registered πολλαπλά J2SEs). Για να σιγουρευτείς ότι ο Tomcat χρησιμοποιεί το ίδιο JDK με αυτό που χρησιμοποίησες για να φτιάξεις το certificate, τσέκαρε τις δυο-τρεις πρώτες γραμμές στo console του Tomcat όταν ξεκινάει και δες τι χρησιμοποιείται ως JAVA_HOME.












RSS