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:
- Generazione chiave privata
- Richiesta certificato alle autorità competenti
- Installazione certificato
- 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
Fermate il servizio di Twproject e modificate Tomcat conf/server.xml per abilitare il protocollo 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"/>
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.