czwartek, 20 września 2007

SSL w Tomcat 5.5 i wyżej

Jak 'w miarę' szybko włączyć SSL-a w Tomcat-cie 5.5?

1. Potrzebujemy certyfikatu klucza publicznego i klucza prywatnego dla naszego serwera, można uzyskać darmowy np. od Thawte na 30-90 dni lub generujemy go sobie na próbę sami przy pomocy keytool z Java JDK.
Należy pamiętać, że CN w nazwie certyfikatu (Common Name) musi odpowiadać adresowi IP lub nazwie naszego serwera.
Docelowo dla publicznego serwera na którym mamy nasz będziemy musieli sobie go kupić, ale nie jest to duży wydatek.
Teraz, jeżeli otrzymaliśmy od CA plik P12 to lecimy do punktu 2.

2 a)
Jeżeli nie posiadamy certyfikatu i klucza prywatnego w postaci pliku P12/PFX, ale mamy klucz prywatny (np. server.key) i związany z nim certyfikat klucza publicznego (server.crt) to musimy z nich zrobić PFX-a.
Robimy to kopiując zawartość klucza i certyfikatu do jednego pliku w notatniku lub innym edytorze tekstowym i zapisujemy do pliku server.pem.
Teraz wystarczy jedna linijka polecenia za pomocą OpenSSLa:
openssl pkcs12 -export -in server.pem -out server.p12
i podajemy hasło do naszego pliku pfx, np. 'password' :)

2. Kopiujemy server.p12 do CATALINA_HOME, czyli np. c:\Program Files\Apache Software Foundation\Tomcat 5.5

3. Modyfikujemy plik CATALINA_HOME\conf\server.xml,
dodajemy nowy konektor za innym tagiem o tej samej nazwie:
< port="443" protocol="HTTP/1.1" maxthreads="150" keystorefile="server.p12" keystorepass="password" keystoretype="PKCS12" sslenabled="true" scheme="https" secure="true" clientauth="false" sslprotocol="SSL">

Jeżeli chcemy, żeby tylko za pośrednictwem SSL-a można było łączyć się z serwerem, to musimy jeszcze zakomentować tag z drugim konektorem, do portu 8080.

4. Restartujemy serwer, i próbujemy połączyć się z nim za pośrednictwem https, np. u mnie to jest taki adres: https://192.168.128.123/aplikacja/login.jsp

Jeżeli wszystko dobrze zrobiliśmy, to już możemy używać bezpiecznego połączenia z serwerem!

Brak komentarzy: