Posts Tagged ‘Server’

02. Juli 2020

Sicherheits- und Stabilitätskorrekturen

Durch Wartungsarbeiten an unseren Server kann es in der Nacht vom 06.07.2020 auf den 08.07.2020 zwischen 22:00 Uhr und 06:00 Uhr zu kurzzeitigen Ausfällen bzw. Unerreichbarkeiten kommen. Wir tun alles darum dies zu vermeiden und geben unser bestes alles komplett reibungslos auf einen neuen Stand zu bringen.

Security first.




31. Januar 2018

Server Probleme im Rechenzentrum

Wir bitten dies zu entschuldigen!

Leider haben Teile unserer Hardware oder der Controller heute im Rechenzentrum den Geist aufgegeben und die Daten mussten auf neue Instanzen transferiert werden. Dies hat dazu geführt, dass einige unserer Services heute von 14 bis 18 Uhr Timeouts hatten und z.B. keine Mails versendet werden konnten. Dafür konnten wir leider nichts, werden aber für die Zukunft an einem Disaster-Plan für solche Fälle arbeiten um unabhängig von Serveranbietern eine noch bessere Verfügbarkeit zu gewährleisten.

Alles Systeme sind wieder online und laufen wieder wie gewohnt; Stabil.

VG, Euer FancyServer Hero-Team




20. Oktober 2016

How-To – Let’s Encrypt und Tomcat

Wie installiert man Let’s Encrypt in Verbindung mit Tomcat? Let's Encrypt und TomcatWir haben vor kurzem unser Projekt LokaleWare aus Performance- und Erweiterungsgründen auf einen neuen Server migriert. Nun wollten wir auch dort, dass LokaleWare mittels HTTPs gesichert ist. Deshalb wollten wir auch dort Let’s Encrypt einsetzen um die Zertifikate zu generieren. Das Problem ist, dass wir keine gute Anleitung bezüglich der Kombination mit Tomcat gefunden haben und so viele Forenbeiträge durchsuchen mussten. Deshalb werden wir hier unsere Lösung beschreiben. We call it; Let’s Encat 😀

Voraussetzungen

Umgesetzt haben wir das Projekt mit folgenden Versionen:
letsencrypt 0.4.1
tomcat 7

Umsetzung Let’s Encrypt und Tomcat

Das Programm letsencrypt kann je nach Installation auch certbot oder letsencrypt-auto heißen.

Im Vergleich zum Apache gibt es bei der Zertifikatserstellung mit Tomcat zwei Probleme. Das erste Problem ist, dass der Beweis, dass diese Domain zu dem Server gehört über Port 80 und dem richtigen Pfad bereitgestellt werden muss. Wir wollten unsere Projekte von externen Scripten unberührt lassen, weshalb wir die Beweis-Datei nicht mittels Tomcat auslieferen. Deshalb kommen wir nun zu der von uns gewählten Lösung. Wir lassen für kurze Zeit einen anderen HTTP Server die Datei bereitstellen. Dazu beenden wir Tomcat, damit Port 80 frei wird und starten den neuen Server.

Das nächste Problem war die Umwandlung des Zertifikates und die Speicherung in den Java-Keystore (JKS). Zur Umwandlung verwenden wir OpenSSL um anschließend das neue Format des Zertifikates im JKS zu speichern.

Zum Schluss muss nur noch der Tomcat wieder gestartet werden.

Hier unser Shell-Script:
#!/bin/bash
# preparation
certdir=/etc/letsencrypt/live/lokaleware.de
keytooldir=/opt/java/default/jre/bin/
mydomain=lokaleware.de
myemail=info@lokaleware.de
keystoredir=/opt/tomcat7/lw.jks

#the script itself:
service tomcat7 stop

letsencrypt certonly --standalone -d www.$mydomain -d $mydomain --standalone-supported-challenges http-01 --http-01-port 80 --renew-by-default --email $myemail --agree-tos

$keytooldir/keytool -delete -alias root -storepass changeit -keystore $keystoredir
$keytooldir/keytool -delete -alias tomcat -storepass changeit -keystore $keystoredir

openssl pkcs12 -export -in $certdir/fullchain.pem -inkey $certdir/privkey.pem -out $certdir/cert_and_key.p12 -name tomcat -CAfile $certdir/chain.pem -caname root -password pass:aaa

$keytooldir/keytool -importkeystore -srcstorepass aaa -deststorepass changeit -destkeypass changeit -srckeystore $certdir/cert_and_key.p12 -srcstoretype PKCS12 -alias tomcat -keystore $keystoredir
$keytooldir/keytool -import -trustcacerts -alias root -deststorepass changeit -file $certdir/chain.pem -noprompt -keystore $keystoredir

# restart your tomcat server
service tomcat7 start

Weitere Konfigurationen

Zum Schluss erstellt Ihr noch einen Cron-Job und lasst kurz vor Ablauf der 3 Monate das Zertifikat erneuern.

In der Datei „server.xml“ müsst Ihr noch die Keystore-Datei auslesen, indem Ihr z.b. folgendes Connector-Tag verwendet:

<Connector
port="443"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
SSLEnabled="true"
maxThreads="150"
minSpareThreads="25"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="100"
scheme="https"
secure="true"
keystoreFile="/opt/tomcat7/lw.jks"
keystorePass="changeit"
clientAuth="false"
sslProtocol="TLS"
useBodyEncodingForURI="true" ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_SHA256, TLS_ECDHE_RSA_WITH_AES_128_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_SHA, TLS_ECDHE_RSA_WITH_AES_256_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_SHA384, TLS_ECDHE_RSA_WITH_AES_256_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_SHA, TLS_DHE_RSA_WITH_AES_128_SHA256, TLS_DHE_RSA_WITH_AES_128_SHA, TLS_DHE_DSS_WITH_AES_128_SHA256, TLS_DHE_RSA_WITH_AES_256_SHA256, TLS_DHE_DSS_WITH_AES_256_SHA, TLS_DHE_RSA_WITH_AES_256_SHA" />

Hinweis

Die Passwörter sind natürlich geändert und solltet Ihr das Script verwenden, solltet Ihr es auch ändern. Mehr Information über Let’s Encrypt hatten wir auch schonmal in einem alten Blogpost erwähnt.
Viel Erfolg beim Ausprobieren.