Um den Apache Tomcat über HTTPS bereitzustellen, sind Anpassungen an der Datei server.xml des Tomcats notwendig.

  1. Öffnen Sie die Datei server.xml (Pfad = /Pfad/Zum/Tomcat/conf/server.xml) mit einem entsprechenden Texteditor
  2. Navigieren Sie zu der u.g. Zeile bzw. dem gesamten Eintrag/Block

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
           <SSLHostConfig>
               <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                            type="RSA" ></Certificate>
           </SSLHostConfig>
    </Connector>

    Sollte der entsprechende Block kommentiert sein, so kommentieren Sie diesen aus!

  3. Passen Sie den Inhalt an Ihre Gegebenheiten (Pfade/Zertifikate/Port) an.

    <Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
              URIEncoding="UTF-8"
              maxHttpHeaderSize="65536"
              maxPostSize="10485760"
              relaxedQueryChars="[ \ ] ^ ` { | }">
       <SSLHostConfig hostName="XX.XXXX.XX">
           <Certificate certificateKeyFile="conf/private.key"
                        certificateFile="conf/zertifikat.crt"
                        certificateChainFile="conf/CHAIN.pem"
                        type="RSA" ></Certificate>
       </SSLHostConfig>
    </Connector>

    Weiterführende Informationen zur Konfiguration von der Eigenschaft SSLHostConfig: https://tomcat.apache.org/tomcat-8.5-doc/config/http.html#SSL_Support_-_SSLHostConfig

    Eine Zusammenfassung der wichtigsten Optionen finden Sie im Folgenden:

    AttributWertBeschreibung
    port443 (Standard)Über diesen Port wird die Verbindung aufgebaut.
    URIEncodingUTF-8UTF-8 ist wichtig für eine durchgängig sauberes Encoding.
    maxHttpHeaderSize65536Dieser Wert sollte nicht verändert werden.
    maxPostSize1100715200Maximale Größe der Posts (Formulardaten inkl. Datei-Uploads) in Bytes. Der Wert in dem Beispiel ist 1GB.
    hostName*Name oder IP Adresse des Hosts.
    certificateKeyFile*.keyDer private Schlüssel des Zertifikats.
    certificateFile*.crtDas eigentliche Zertifikat.
    certificateChainFile*.*Das übergeordnete Zertifikat (Certificate Authority (CA)), wenn nötig.

Weitere Möglichkeiten ein Zertifikat im Tomcat am Connector zu konfigurieren:

Einbindung mittels KeyStore:

<Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
          URIEncoding="UTF-8"
          maxHttpHeaderSize="65536"
          maxPostSize="10485760"
          relaxedQueryChars="[ \ ] ^ ` { | }">
   <SSLHostConfig>
       <Certificate certificateKeystoreFile="conf/file.keystore"
                    certificateKeystorePassword="mypwd" ></Certificate>
   </SSLHostConfig>
</Connector>

Ist man im Besitz einer KeyPair-Datei (*.pfx, *.p12) kann man diese auch direkt einbinden:

<Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
          URIEncoding="UTF-8"
          maxHttpHeaderSize="65536"
          maxPostSize="10485760"
          relaxedQueryChars="[ \ ] ^ ` { | }">
   <SSLHostConfig>
       <Certificate certificateKeystoreFile="conf/file.pfx"
                    certificateKeystorePassword="mypwd"
                    certificateKeystoreType="PKCS12" ></Certificate>
   </SSLHostConfig>
</Connector>
Copyright 2000-2024