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 hier.
Zur Konfiguration eines SSL-Connectors wird die Konfigurationsdatei /etc/benno/jetty.xml erweitert.
<?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> <!-- Configuration for bennorest / jetty >= 2.10 --> <Configure id="BennoREST-2.10.0" class="org.eclipse.jetty.server.Server"> <Call name="addConnector"> <Arg> <New class="org.eclipse.jetty.server.ServerConnector"> <Arg name="server"> <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> </Arg> <Arg name="factories"> <Array type="org.eclipse.jetty.server.ConnectionFactory"> <Item> <New class="org.eclipse.jetty.server.HttpConnectionFactory"> <Arg name="config"> <New id="config" class="org.eclipse.jetty.server.HttpConfiguration"> <Call name="addCustomizer"> <Arg> <New class="org.eclipse.jetty.server.SecureRequestCustomizer"> <Arg name="sniRequired" type="boolean"> <Property name="jetty.ssl.sniRequired" default="false"/> </Arg> <Arg name="sniHostCheck" type="boolean"> <Property name="jetty.ssl.sniHostCheck" default="false"/> </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>
Der private Schlüssel und das Zertifikat werden in einem 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.
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
In der Konfiguration von benno-web wird der URL in der Datei /etc/benno-web/benno.conf angepasst:
BASE_URL = https://rest.lw-systems.net:21443
Bei der Abfrage des REST-Backends wird das SSL-Zertifikat nicht geprüft. Falls diese Prüfung erzwungen werden soll,
muss der Konfigurations-Parameter REST_SSL_VERIFY auf „true“ gesetzt werden.
# to enable ssl certificate verification of REST server set YES #REST_SSL_VERIFY = NO
Diese Parameter werden beim Aufbau der Session eingelesen. Daher ist es notwendig, sich nach Änderung abzumelden und wieder neu anzumelden.