1.) Kulcs állomány létrehozása
    A jre\bin-ben
    keytool -genkey -alias tomcat -keyalg RSA -keystore .keystore -dname "cn=Tomcat, ou=Intranet, o=CegNev, c=HU"
    Kérdésre megadni, megerősíteni a password-öt.
        -keystore a keletkező file helye\neve.
        -dname a distinguished name (LDAP)
2.) A ".keystore" állományt bemásolni a Tomcat (~\Tomcat 6.0) fő mappájába
3.) Módosítani a "~\Tomcat 6.0\conf\server.xml"-t
    Kivenni a comment jelölést és beállítani a paramétereket:
            <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                       maxThreads="150" scheme="https" secure="true"
                   keystoreFile=".keystore" keystorePass="******" 
                   clientAuth="false" sslProtocol="TLS" />
    A keystorePass= után a kulcsfile készítésekor megadott jelszó kell szerepeljen!
4.) A normál elérés az egész serveren való tiltásához commentbe rakni az alábbit:
            <Connector executor="tomcatThreadPool"
                       port="8080" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8443" />
5.) Amennyiben "csak" valamelyik web alkalmazást kell védeni annak a web.xml (pl.:~\Tomcat 6.0\webapps\examples\WEB-INF\web.xml") állományába kell az alábbi:
        <security-constraint>
              <web-resource-collection>
                  <web-resource-name>Restricted URLs</web-resource-name>
                  <url-pattern>/</url-pattern>
              </web-resource-collection>
              <user-data-constraint>
                  <transport-guarantee>CONFIDENTIAL</transport-guarantee>
              </user-data-constraint>
        </security-constraint>
    A <url-pattern> kell felsorolni a védendő URL mintákat.
6.) Újraindítani a Tomcat szervert.


Forrás: http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
    http://confluence.atlassian.com/display/DOC/Adding+SSL+for+Secure+Logins+and+Page+Security
    http://java.sun.com/javase/6/docs/technotes/tools/solaris/keytool.html

2013.03.18.
További fejlemények

Tesztelési célból létrehoztam egy v7 Tomcatet (host win7). A fentiek szerint megcsináltam a shelf signed keystore.t  a fentiek szerint. Ahogy szokták mondani, innen kezdődtek a bajok....

a Tomcat indításkor hibát dobott ugyan, de látszólag elindult. Https-el kapcsolódni nem lehetett. A log végén a SEVERE: Failed to start connector [Connector[AJP/1.3-8009]]
LifecycleException:  An invalid Lifecycle transition was attempted ([before_star
t]) for component [Connector[AJP/1.3-8009]] in state [INITIALIZING] ....
hibaüzenetet kaptam.
Illetve a az adott indulás elején a
SEVERE: Error initializing endpoint
java.lang.Exception: No Certificate file specified or invalid file format
Üzenet dobta.

Hosszas goolizás...
Utalás arra hogy a server.xml elején a nativ APR-t nem kell megengedni, vagyis a
  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
Második sorát komentezni kell:
  <!--  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> -->
Ez látszólag nem old meg semmit. A hiba üzenetek továbbra is jönnek

Újra googlizás...
Utalás arra, a korábbi (egyébként javított hibára) hogy ilyen esetben a keystore és a tomcat alias password-je azonos (same) kell legyen.

Ez már a sokadik keystore gyártás. Láss csodát minden Ok!

Forrás:
http://readlist.com/lists/tomcat.apache.org/users/20/100741.html (eredetileg nem ez az oldal igazított el, most azt nem találom)
http://tomcat.10.n6.nabble.com/Possible-issue-with-Tomcat-7-0-27-SSL-keystore-configuration-td4983640.html
https://issues.apache.org/bugzilla/show_bug.cgi?id=38217


2013.08.18.
Az élet mindig produkál újat

Minap más által beszerzett tanúsítvánnyal kellet "megbízhatóvá" tenni egy linuxon futó Tomcat-ot.

Mindehhez kaptam host-chain.ctr, host.crt éa host.key állományokat.
Kezdetben az sem volt magától értetődő, hogy ezek közül melyiknek mi a szerepe.
A host.key a kulcs amihez a tanúsítványt kérték.
A host.crt az kulcshoz kapott tanúsítvány. A host-chain a tanúsító tanúsítási lánca. értsd "root certificate".
Mivel alapesetben, a tanúsítvány igénylés megelőző lépése a kulcs elkészítése, a kulcs a karikán (keystore) van. Ehhez kell a tanúsítványokat importálni. Ezért a keytool nem is tud ilyet.

Némi googlizás után találtam java programot, amivel el lehet készíteni a kulcsból és a hozzá tartozó tanúsítványból a keystore-t (www.agentbob.info/agentbob/79-AB.html).
Igaz ehhez az alkatrészeknek PEM formátum helyett DER formátumuaknak kell lenniük.
Szerencsére az openssl tud ilyet.

openssl pkcs8 -topk8 -nocrypt -in key.pem -inform PEM -out key.der -outform DER
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER

Ez után "már csak" a root certificate-t kellet a keytool-lal impotrálni.
Figyelem, linuxon belépve a [JAVA_HOME]/bin mappába, ott kiadva a keytoolt parancsot, a path-on levő indul el nem az aktuális mappabeli. Az eltérő verziók viszont eltérő formátumot használnak, pl.: az 1.5 és az 1.6.

Mindent összevetve úgy hat óra alatt végeztem is.

A bejegyzés trackback címe:

https://pharsan.blog.hu/api/trackback/id/tr51979381

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