Wiki-Quellcode von Bereitstellung über HTTPS


Zeige letzte Bearbeiter
1 {{content/}}
2
3 ==Konfigurieren des HTTPS Connectors==
4
5 Um den Apache Tomcat über HTTPS bereitzustellen, sind Anpassungen an der Datei //server.xml// des Tomcats notwendig.
6
7 1. Öffnen Sie die Datei //server.xml// (Pfad = ///Pfad/Zum/Tomcat/conf/server.xml//) mit einem entsprechenden Texteditor
8 1. (((
9 Navigieren Sie zu der u.g. Zeile bzw. dem gesamten Eintrag/Block
10
11 {{code}}
12 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
13 <SSLHostConfig>
14 <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
15 type="RSA" ></Certificate>
16 </SSLHostConfig>
17 </Connector>
18 {{/code}}
19
20 Sollte der entsprechende Block kommentiert sein, so kommentieren Sie diesen aus!
21 )))
22 1. (((
23 Passen Sie den Inhalt des einkommentierten Connectors an Ihre Gegebenheiten (Pfade/Zertifikate/Port) an. Dies könnte zum Beispiel so aussehen:
24
25 {{code}}
26 <Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
27 URIEncoding="UTF-8"
28 maxHttpHeaderSize="65536"
29 maxPostSize="10485760"
30 relaxedQueryChars="[ \ ] ^ ` { | }">
31 <SSLHostConfig hostName="XX.XXXX.XX">
32 <Certificate certificateKeyFile="conf/private.key"
33 certificateFile="conf/zertifikat.crt"
34 certificateChainFile="conf/CHAIN.pem"
35 type="RSA" ></Certificate>
36 </SSLHostConfig>
37 </Connector>
38 {{/code}}
39
40 Weiterführende Informationen zur Konfiguration von der Eigenschaft //SSLHostConfig// finden Sie in der Dokumentation des Herstellers: [[https:~~/~~/tomcat.apache.org/tomcat-8.5-doc/config/http.html#SSL_Support_-_SSLHostConfig>>https://tomcat.apache.org/tomcat-8.5-doc/config/http.html#SSL_Support_-_SSLHostConfig]]
41 )))
42
43 ===Zusammenfassung der wichtigsten Optionen===
44
45 In der folgenden Tabelle werden die wichtigsten Optionen und Ihre Bedeutung aufgeführt:
46
47 {{table dataTypeAlpha="0" preSort="0-asc"}}
48 |=Attribut|=Wert|=Beschreibung
49 |port|443 (Standard)|Über diesen Port wird die Verbindung aufgebaut.
50 |URIEncoding|UTF-8|UTF-8 ist wichtig für eine durchgängig sauberes Encoding.
51 |maxHttpHeaderSize|65536|Dieser Wert sollte nicht verändert werden.
52 |maxPostSize|1100715200|Maximale Größe der Posts (Formulardaten inkl. Datei-Uploads) in Bytes. Der Wert in dem Beispiel ist 1GB.
53 |hostName|*|Name oder IP Adresse des Hosts.
54 |certificateKeyFile|*.key|Der private Schlüssel des Zertifikats.
55 |certificateFile|*.crt|Das eigentliche Zertifikat.
56 |certificateChainFile|*.*|Das übergeordnete Zertifikat (Certificate Authority (CA)), wenn nötig.
57 {{/table}}
58
59 ===Weitere Möglichkeiten ein Zertifikat im Tomcat am Connector zu konfigurieren===
60
61 Einbindung mittels KeyStore:
62
63 {{code}}
64 <Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
65 URIEncoding="UTF-8"
66 maxHttpHeaderSize="65536"
67 maxPostSize="10485760"
68 relaxedQueryChars="[ \ ] ^ ` { | }">
69 <SSLHostConfig>
70 <Certificate certificateKeystoreFile="conf/file.keystore"
71 certificateKeystorePassword="mypwd" ></Certificate>
72 </SSLHostConfig>
73 </Connector>
74 {{/code}}
75
76
77 Ist man im Besitz einer KeyPair-Datei (*.pfx, *.p12) kann man diese auch direkt einbinden:
78
79 {{code}}
80 <Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
81 URIEncoding="UTF-8"
82 maxHttpHeaderSize="65536"
83 maxPostSize="10485760"
84 relaxedQueryChars="[ \ ] ^ ` { | }">
85 <SSLHostConfig>
86 <Certificate certificateKeystoreFile="conf/file.pfx"
87 certificateKeystorePassword="mypwd"
88 certificateKeystoreType="PKCS12" ></Certificate>
89 </SSLHostConfig>
90 </Connector>
91 {{/code}}
92
93 ==Einschränken auf bestimmte TLS-Versionen==
94
95 Wenn für verschlüsselte Verbindungen nur bestimmte Versionen von TLS unterstützt werden sollen, kann dies über die Attribute //protocols// und //sslProtocol// in der //SSLHostConfig// des Connectors konfiguriert werden. Eine beispielhafte Konfiguration, welche nur die TLS-Versionen 1.1 und 1.2 zulässt, könnte wie folgt aussehen:
96
97 {{code}}
98 <Connector ...>
99 <SSLHostConfig protocols="TLSv1.1+TLSv1.2" sslProtocol="TLSv1.1+TLSv1.2">
100 <Certificate certificateKeyFile="conf/private.key"
101 certificateFile="conf/zertifikat.crt"
102 certificateChainFile="conf/CHAIN.pem"
103 type="RSA" ></Certificate>
104 </SSLHostConfig>
105 </Connector>
106 {{/code}}
107
108 Falls zusätzlich eine Einschränkung der möglichen Verschlüsselungsalgorithmen gewünscht wird, kann diese mit dem Attribut //ciphers// vorgenommen werden.
109
110 Nähere Informationen zur Konfiguration und den möglichen Optionen der Attribute finden Sie in der Dokumentation des Herstellers: [[https:~~/~~/tomcat.apache.org/tomcat-8.5-doc/config/http.html#SSL_Support_-_SSLHostConfig>>https://tomcat.apache.org/tomcat-8.5-doc/config/http.html#SSL_Support_-_SSLHostConfig]]
111
112 ==Erzwingen von HTTPS==
113
114 Sollte der komplette Server ausschließlich über HTTPS betrieben werden empfiehlt es sich den Standard HTTP-Connector zu entfernen bzw. auszukommentieren. Sollte dies keine Option sein gibt es zusätzlich die Möglichkeit sowohl für den ganzen Server, als auch für einzelne Anwendungen eine Kommunikation über HTTPS zu erzwingen. Hierfür kann in die Datei //web.xml// des Servers (///Pfad/Zum/Tomcat/conf/web.xml//) oder der Anwendung (///Pfad/Zum/Tomcat/webapps/formcycle/WEB-INF/web.xml//) innerhalb des Knotens //web-app// folgendes eingefügt werden:
115
116 {{code}}
117 <security-constraint>
118 <web-resource-collection>
119 <web-resource-name>Entire Application</web-resource-name>
120 <url-pattern>/*</url-pattern>
121 </web-resource-collection>
122
123 <user-data-constraint>
124 <transport-guarantee>CONFIDENTIAL</transport-guarantee>
125 </user-data-constraint>
126 </security-constraint>
127 {{/code}}