[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: certificati let's encrypt in tomcat



Il 23/03/21 08:47, Paolo Miotto ha scritto:
il protocollo TLS  prevede la presentazione da parte del server di un certificato contenente:

* il certificato del server firmato da una CA

* la catena dei certificati delle CA che hanno firmato il certificato precedente, fino ad arrivare ad una Root CA, che può essere omessa.


Questo per permettere ai client di verificare il certificato a partire da quello delle Root CA.


Nelle vecchie (<2.4.8) il certificato del server e la catena delle CA dovevano risiedere su 2 file separati, che venivano poi assemblati dal server per essere presentati ai client, e così pure molti altri server con TLS.

Dalla versione 2.4.8 in poi viene consigliato di usare un unico file contenente sia il certificato che la catena, così come verrebbe presentato al client.

Ora non conosco Tomcat, ma presumo che ricada nel caso di un server TLS che richiede certificato e catena separati.

Grazie mille Paolo, ho ancora molta confusione; prima di capire cosa vuole tomcat mi piacerebbe allora capire cosa mi restituisce letsencrypt. Letsencrypt come dicevo genera 4 files: privkey.pem, fullchain.pem, chain.pem e cert.pem. Accompagnati a questi 4 files c'è il seguente README:

This directory contains your keys and certificates.

`privkey.pem`  : the private key for your certificate.
`fullchain.pem`: the certificate file used in most server software.
`chain.pem`    : used for OCSP stapling in Nginx >=1.3.7.
`cert.pem`     : will break many server configurations, and should not be used
                 without reading further documentation (see link below).

WARNING: DO NOT MOVE OR RENAME THESE FILES!
         Certbot expects these files to remain in this location in order
         to function properly!

We recommend not moving these files. For more information, see the Certbot
User Guide at https://certbot.eff.org/docs/using.html#where-are-my-certificates.
Secondo te quindi fullchain.pem è un certificato che contiene anche la catena dei certificati?

Inoltre ora tomcat sono riuscito a farlo funzionare con un certificato autofirmato. Il certificato l'ho generato con un tool di tomcat che si chiama keytool. Questo è il comando lanciato:

$ keytool -keysize 2048 -genkey -validity 1825 -keyalg RSA -alias tomcat -keystore .keystore

Una volta lanciato quel comando mi chiede una password e una serie di informazione che poi compaiono nel certificato stesso (tipo nome, cognome, azienda provincai, stato...). Poi ho copiato il file .keystore generato nella directory di tomcat e ho dovuto mettere i riferimenti del file .keystore generato e la password utilizzata nel file server.xml di tomcat:

<?xml version="1.0" encoding="UTF-8"?>
[...]
    <!-- Define an SSL Coyote HTTP/1.1 Connector on port 8443 -->
    <Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="/etc/tomcat9/.keystore" keystorePass="password utilizzata nella generazione del certificato"
           clientAuth="false" sslProtocol="TLS"/>

Secondo te quindi il file .keystore contiene certificato e catena? Qual'è il senso, secondo te, che io e tomcat condividiamo una stessa password affinché tomcat possa utilizzare il certificato? Per caso sai indirizzarmi su come si possa, con keytool, trasformare il certificato letsencrypt in un certificato valido per tomcat?

Grazie mille

Piviul


Reply to: