Benutzer-Werkzeuge

Webseiten-Werkzeuge


benno_rest_mit_ssl-verschluesselung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
benno_rest_mit_ssl-verschluesselung [2018/10/02 13:29] – [Zertifikat erstellen] lwsystemsbenno_rest_mit_ssl-verschluesselung [2023/04/26 16:57] (aktuell) – [Zertifikat erstellen] lwsystems
Zeile 1: Zeile 1:
 ====== Benno REST mit SSL-Verschlüsselung ====== ====== Benno REST mit SSL-Verschlüsselung ======
 +
 +**Achtung!** Dieses Dokument beschreibt die Konfiguration von Benno REST ab Version 2.10.0. Die Erläuterung zur Konfiguration der SSL-Verschlüsselung von älteren Versionen von Benno REST finden Sie [[Benno REST SSL 2.8|hier]].
  
 ===== Konfiguration von Jetty  ===== ===== Konfiguration von Jetty  =====
  
 Zur Konfiguration eines SSL-Connectors wird die Konfigurationsdatei /etc/benno/jetty.xml erweitert.  Zur Konfiguration eines SSL-Connectors wird die Konfigurationsdatei /etc/benno/jetty.xml erweitert. 
-<code>+<file xml>
 <?xml version="1.0"?> <?xml version="1.0"?>
 <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
-<!-- Configuration for bennorest / jetty --> +<!-- Configuration for bennorest / jetty >= 2.10 --> 
-<Configure id="FileServer" class="org.eclipse.jetty.server.Server"> +<Configure id="BennoREST-2.10.0" class="org.eclipse.jetty.server.Server"> 
-    <Call name="addConnector"> +  <Call name="addConnector"
-      <Arg> +    <Arg
-          <New class="org.eclipse.jetty.server.nio.SelectChannelConnector"> +      <New class="org.eclipse.jetty.server.ServerConnector"> 
-            <Set name="host"></Set> +        <Arg name="server"
-            <Set name="port">21080</Set>+          <Ref refid="BennoREST-2.10.0"/> 
 +        </Arg> 
 +        <Set name="host"></Set> 
 +        <Set name="port">21080</Set> 
 +      </New
 +    </Arg> 
 +  </Call> 
 +  <Call name="addConnector"> 
 +    <Arg> 
 +      <New id="httpsConnector" class="org.eclipse.jetty.server.ServerConnector"> 
 +        <Arg name="server"> 
 +          <Ref refid="BennoREST-2.10.0"/> 
 +        </Arg> 
 +        <Arg> 
 +          <New class="org.eclipse.jetty.util.ssl.SslContextFactory$Server"> 
 +            <Set name="keyStorePath">/etc/benno/keystore</Set> 
 +            <Set name="keyStorePassword">mhO3WjtG7Y5UDgi2NWxL</Set> 
 +            <Set name="keyManagerPassword">mhO3WjtG7Y5UDgi2NWxL</Set> 
 +            <Set name="trustStorePath">/etc/benno/keystore</Set> 
 +            <Set name="trustStorePassword">mhO3WjtG7Y5UDgi2NWxL</Set>
           </New>           </New>
-      </Arg> +        </Arg> 
-    </Call+        <Arg name="factories"
-    <Call name="addConnector"> +          <Array type="org.eclipse.jetty.server.ConnectionFactory"> 
-      <Arg+            <Item
-          <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector"> +              <New class="org.eclipse.jetty.server.HttpConnectionFactory"> 
-            <Set name="Host">192.168.1.10</Set+                <Arg name="config"> 
-            <Set name="Port">21443</Set+                  <New id="config" class="org.eclipse.jetty.server.HttpConfiguration"> 
-            <Set name="maxIdleTime">30000</Set+                    <Call name="addCustomizer"> 
-            <Set name="keystore">/etc/benno/keystore</Set+                      <Arg> 
-            <Set name="password">mhO3WjtG7Y5UDgi2NWxL</Set+                        <New class="org.eclipse.jetty.server.SecureRequestCustomizer"> 
-            <Set name="keyPassword">mhO3WjtG7Y5UDgi2NWxL</Set> +                          <Arg name="sniRequired" type="boolean"
-            <Set name="truststore">/etc/benno/keystore</Set> +                            <Property name="jetty.ssl.sniRequireddefault="false"/> 
-            <Set name="trustPassword">mhO3WjtG7Y5UDgi2NWxL</Set> +                          </Arg
-          </New> +                          <Arg name="sniHostCheck" type="boolean"> 
-      </Arg> +                            <Property name="jetty.ssl.sniHostCheck" default="false"/> 
-    </Call>+                          </Arg> 
 +                          <Arg name="stsMaxAgeSeconds" type="int"> 
 +                            <Property name="jetty.ssl.stsMaxAgeSeconds" default="-1"/
 +                          </Arg
 +                          <Arg name="stsIncludeSubdomains" type="boolean"> 
 +                            <Property name="jetty.ssl.stsIncludeSubdomains" default="false"/
 +                          </Arg> 
 +                        </New> 
 +                      </Arg> 
 +                    </Call> 
 +                  </New> 
 +                </Arg> 
 +              </New
 +            </Item> 
 +          </Array> 
 +        </Arg> 
 +        <Set name="host">192.168.1.10</Set> 
 +        <Set name="port">21443</Set> 
 +        <Set name="idleTimeout">30000</Set> 
 +      </New> 
 +    </Arg> 
 +  </Call>
 </Configure> </Configure>
-</code>+</file>
  
 ===== Zertifikat erstellen ===== ===== Zertifikat erstellen =====
  
-Der private Schlüssel und  das Zertifikat werden in einem [[keystore|Java Keystore]] gespeichert. +Der private Schlüssel und  das Zertifikat werden in einem [[keystore|Java Keystore]] gespeichert. 
 +Alternativ können dies auch als PKCS#12 Datei angegeben werden. Diese Datei kann mittels OpenSSL aus 
 +den häufig vorliegenden PEM-Files erstellt werden. 
 + 
 +<code bash> 
 +openssl pkcs12 -export \ 
 +  -passout pass:mhO3WjtG7Y5UDgi2NWxL \ 
 +  -inkey keyfile.pem \ 
 +  -in certchain.pem \ 
 +  -out certchain+key.pkcs12  
 +chown benno:benno certchain+key.pkcs12 
 +chmod 0440 certchain+key.pkcs12 
 +</code> 
  
 ===== Web-Frontend konfigurieren ===== ===== Web-Frontend konfigurieren =====
benno_rest_mit_ssl-verschluesselung.1538486944.txt.gz · Zuletzt geändert: 2018/10/02 13:29 von lwsystems