Configure Twproject on HTTPS

Far girare una applicazione su https al giorno d’oggi è quasi d’obbligo, in particolar modo se l’indirizzo dell’applicazione è pubblico. Dalla versione 6.3 di Twproject l’https è un requisito per poter ricevere le notifiche desktop della nuova chat.

Configurare Tomcat su https è sicuramente una operazione che richiede alcune nozioni sistemistiche, per fortuna però ci sono moltissime guide online che vi aiuteranno in questa procedura, ecco quella ufficiale:

https://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html

A volte, le guide offerte dalle certicate authority sono addirittura più semplici, quindi vi consigliamo di controllare il sito web su cui avete generato il certificato.

Durante i nostri innumerevoli tentativi abbiamo creato una guida che usiamo internamente che potete seguire.

Questa guida vale per windows ma può essere certamente applicata anche a linux con qualche cambio di sintassi.

La procedura è divisa in 4 fasi:

  1. Generazione chiave privata
  2. Richiesta certificato alle autorità competenti
  3. Installazione certificato
  4. Configurazione Tomcat

Generazione Chiave Privata

Aprite la console e navigate qui  C:\Program Files\twproject\jre\bin (controllate la cartella di installazione di Twproject)

Eseguite questo comando per generare la chiave.

keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore
pwd: [keystorepassword]
last name: [Twproject public server name e.g. tw.acme.com]
organization unit: [your organization name e.g IT Departement]
Organization: [Your Company Name e.g. Acme]
city: [Your city]
state/province: [Your state/province]
country:[Your country code two letters e.g IT]

Inserite nuovamente la password del keystore.

Richiesta certificato:

Generate la richiesta di certificato come segue:

keytool -certreq -alias tomcat -file csr.txt -keystore tomcat.keystore

Adesso spedite la richiesta alla  certification authority seguendo le istruzione del vostro provider, questo potrebbe richiedere alcune ore.

Installazione certificato

Una volta che il certificato è stato emesso scaricatelo e importatelo nel keystore.:

keytool -import -alias tomcat -keystore tomcat.keystore -trustcacerts -file certificate from CA.crt

Configurazione Tomcat

Modificate Tomcat conf/server.xml per abilitare https :

<Connector port="80" enableLookups="false" redirectPort="443" URIEncoding="UTF-8" connectionTimeout="20000" sisableUploadTimeout="true" maxHttpHeaderSize="1048576" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" />

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" URIEncoding="UTF-8" keystoreFile="C:\program files\twproject\https\tomcat.keystore" keystorePass="keystorepassword"/>

Se avete già un certificato su un .pfx file, contenente sia la chiave privata che il certificato, dovrete solo cambiare il file di configurazione server.xml in questo modo:

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" URIEncoding="UTF-8" KeystoreFile="myCertificateFile.pfx" keystorePass="***" keystoreType="JKS"/>

in order to force https on /conf/web.xml use these tags

usate questi tag per forzare  https su /conf/web.xml

<security-constraint> 
<web-resource-collection> 
<web-resource-name>Entire Application</web-resource-name
<url-pattern>/*</url-pattern> 
</web-resource-collection> 
<user-data-constraint> 
<transport-guarantee>CONFIDENTIAL</transport-guarantee> 
</user-data-constraint> 
</security-constraint>

 

Alla fine riavviate Tomcat.

Questi dovrebbero essere tutti i passi necessari per girare su https.