HTML

Linux admin hogyanok

Köszöntelek a Linux admin hogyanok blogomon! Munkám során, sok saját jegyzetet készítek, hogy visszakeresve könnyebben menjen legközelebb. Arra gondoltam, ezt meg is osztom, hátha másoknak is segítségére válik. Enjoy! :)

Friss topikok

  • bAndie91: volumeDown+middle+Hangup kombinációval sikerült "Downloading" módba boot-olni (gondolom egyenlõ a ... (2011.02.18. 12:41) Android update (HTC magic 1.6-2.1)

Linkblog

ssl certifikacio tomcat web szerverre

burgerrecords 2010.09.24. 18:21

 Volt egy pár álmatlan munkanapom, amíg sikerült rendesen behegesztenem az ssl certifikaciot kedvenc tomcat webszerverünkbe. Még egy kis segítséget is kaptam a végén, amit ezúton is köszönök. Foglaljuk is össze hogyan is néz ki a telepítés és mik a buktatók.

 

Az SSL (Secure Socket Layer; Biztonsági Alréteg) egy protokoll réteg és amint azt a neve is mutatja, elsősorban forgalom titkosításhoz használjuk. A 7 rétegű OSI réteg, 3-as azaz Hálózati réteg és a 7-es applikációs réteg közt helyezkedik el. Titkosítás szempontjából három technológia használatos, Public-Private key azaz a nyilvános-titkos kulcs pár, a Symmetric Key azaz a szimmetrikus kulcs és a Digital Signature vagyis a digitális aláírás. Ebbe most nem megyünk bele mélyebben, ha érdekel titeket, rengeteg jó, magyar nyelvű leírás is van a google-n :)

Tehát vegyük egy kicsit gyakorlatiasabbra. A cél, hogy egy ssl szertifikációt installáljunk, tomcat alapú webszerverünkre, vagyis a tomcat alatt futó applikáció/honlap/whatever, https protokollon is elérhető legyen.

Alapfeltétel a java es a tomcat (meglepő). Itt található egy leírás ezek telepítéséről. Ha ezek megvannak, kedvenc java-s szerszámunk is a rendelkezésünkre áll, amivel könnyedén végig hegeszthetjük az egészet. Először is generáljunk egy privát kulcsot amit az ún. keystore-ban fogunk használni.

$keytool -genkey -alias sajat_alias_neved -keyalg RSA -keystore sajat_keystore_eleresiutvonal_plusznev
Enter keystore password: password

Ha nem adjuk meg a -keystore parameter, akkor egy rejtett .keystore nevű file az alapértelmezett. En a servernev.keystore konvenciót szeretem, jól átlátható és backupolható.

Itt majd kér egy passwordöt, amit adjunk meg is szépen neki. Majd még sok-sok jópofa kérdést kapunk, amire szintén válaszoljunk legjobb tudásunk szerint.
Ennek az eredménye 1 db file lesz, a már említett server.keystore, ami a kulcsokat tartalmazza, a java/tomcat számára emészthető formában.
 

A keytool -list -keystore saját keystore.keystore paranncsal le is kérdezhetjük, mit is tartalmaz a fileunk. Ez sokszor jól jöhet, ha már annyi cert van bele importálva, hogy összekavarodunk tőle.

Ha saját cert-el beérjük, akkor készen is lennénk, már csak a tomcat confignak kell megmutatni, hol is keresse a keystore-t. Ilyenkor van az tipikus jelenség, hogy egy http oldalra tévedsz (jellemzően intraneten), hogy a böngészővel le kell töltened a "self signed" certet es elfogadnod a rizikót, amit vállalsz a honlap megnevezésével. 

Sokszor azonban nem érjük be ún. "self signed" cert-el, hanem vaskos pénzért (vagy akár olcsóbbért is) vásárolhatunk "certified" cert különböző cégektől, cserébe a böngészőnk se fog óvatoskodni.
Ilyenkor pedig a már meglévő keystore-unkbol - amiben ugye már ott pihennek a kulcsaink - egy certreq-et, vagyis egy "aláírás kérelmet" importalunk ki, amit elküldve a szolgáltatónak, visszaküld egy ellenőrzött cert-et amit aztán visszaimportalunk a keystore-unkba.

$keytool -certreq -keyalg RSA -alias sajatalias -file certreq.csr -keystore sajatkeystore
Enter keystore password: password

 

Az aliasnak bármit megadhatunk, amit a certifikació megkülönböztetésül használjuk majd, de jól jegyezzük meg, mert a tomcat konfigban és a visszakapott aláírt cert-ben is majd ezt kell használni!
A certreq.cst fileunkat pedig elküldjük a legszimpatikusabbnak talált cégnek aki aláírja majd és visszaküldi. A visszakapott és leellenőrzött file-t másoljuk be a szerverünkre, majd importaljuk be.

$keytool -import trustcacerts -alias sajatalias -file visszakapott.crt -keystore sajatkeystore

Ezek után még szükségünk lesz az ssl szolgáltó cégnek az ún. root és az inter (opcionális) certifikaciójára, mivel ez a egész eljárás hierarchikus felépítésű. Tehát irány a cég honlapja és onnét letöltjük a root.crt, illetve az inter.crt file-t, majd ezeket is jól beimportáljuk:

$keytool -import trustcacerts -alias root -file root.crt -keystore sajatkeystore

$keytool -import trustcacerts -alias inter -file inter.crt -keystore sajatkeystore

 

Ezek után nincs más hátra, mint megadni a tomcat konfigjában a helyet, hol is keresse a keystore fájlunkat. Alapból ki van kommentezve, és mivel xml a konfig, nehéz rátalálni, de ezt a sort kell keresni:

$vi /tomcat/conf/server.xml

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="/root/sajat.keystore" keystorePass="keystore_jelszo"
keyAlias="sajat_alias"
        />

 

Szólj hozzá!

A bejegyzés trackback címe:

https://linuxadmin.blog.hu/api/trackback/id/tr542320748

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása