Tomcat e HTTPS

Tomcat e HTTPS

Di tanto in tanto

capita di dover attivare il protocollo SSL (HTTPS) su Tomcat… Per utilizzare il protocollo sicuro però è necessario un certificato.
La creazione di un certificato “serio” può essere un’operazione complicata. Qui invece vediamo come crearne uno in modo semplice, utile per tutte le operazioni di test di un applicativo.
Pre-condizioni:
tomcat 5.x
jdk 1.x (con x>=4)

Quindi, se abbiamo una versione della jdk maggiore o ugaule alla 1.4 e abbiamo tomcat in una versione maggiore della 5, possiamo creare un certificato in modo abbastanza semplice. Vediamo come.

Uno strumento che sicuramente abbiamo sotto mano per creare dei JKS (Java KeyStore) è keytool che possiamo trovare nella sottocartella bin del nostro JDK. Con questo tool possiamo creare dei certificati semplicemente da riga di comando. Apriamo quindi il command del DOS e procediamo.


C:\j2sdk1.4.2_08\bin>keytool -genkey -alias tomcat -keyalg RSA
Immettere la password del keystore: changeit
Specificare nome e cognome
[Unknown]: Javastaff
Specificare il nome dell'unitÓ aziendale
[Unknown]: Javastaff
Specificare il nome dell'azienda
[Unknown]: Javastaff
Specificare la localitÓ
[Unknown]: Javastaff
Specificare la provincia
[Unknown]: Javastaff
Specificare il codice a due lettere del paese in cui si trova l'unita'
[Unknown]: IT
Il dato CN=Javastaff, OU=Javastaff, O=Javastaff, L=Javastaff, ST=Javastaff, C=IT
è corretto?
[no]: si
Immettere la password della chiave per
(INVIO se corrisponde alla password del keystore): changeit

Da notare che la password che abbiamo inserito (sia per l’utente che per il keystore) è “changeit”, ossia quella che viene usata di default da Tomcat. Se tutto funziona sarebbe meglio creare un certificato con password diversa e specificarlo dentro Tomcat.
Seguendo le operaiozni indicate, viene creato un file “.keystore” nella home dell’utente che ha lanciato il comando. Ora dobbiamo prendere questo file e muoverlo nella cartella dello user con cui gira Tomcat.

Non abbiamo ancora finito.
Dobbiamo infatti modificare il file di configurazione server.xml che si trova nella sottocartella conf di Tomcat. In questo file dobbiamo decommentare il seguente codice:


<-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
<Connector className="org.apache.coyote.tomcat5.CoyoteConnector"
           port="8443" minProcessors="5" maxProcessors="75"
           enableLookups="true" disableUploadTimeout="true"
           acceptCount="100" debug="0" scheme="https" secure="true";
           clientAuth="false" sslProtocol="TLS"/>
-->

 
Qui, oltre a commentare, possiamo indicare anche una serie di parametri che servono per definizione del nuovo Connector HTTPS.
Le informazioni che sono presenti nel server.xml vanno bene così come predisposte, comunque è possibile approfondire queste informazioni cercando nella documentazione ufficiale di Tomcat a cui vi rimando. Una volta finito tutto possiamo avviare la nostra istanza di Tomcat aprendo tranquillamente il browser all’url https://localhost:8443. Se tutto è andato a buon fine ci troveremo davanti la classica pagina iniziale di Tomcat… ma in HTTPS!

3 commenti

  1. Claudio

    Salve …..ho fatto tutta la procedura sopraindicata…ma niente come se non l’avessi fatta..
    DUBBIO:
    il file keystore l’ho copiato nella home dell’amministratore della macchina lasciandolo anche nella home dell’utente con cui ho lanciato i comandi da dos.

    e nel server xml ho tolto il commento a questa riga di codice:

I commenti sono chiusi.