Artikel mit Tag https

Tomcat Server - selbstsigniertes SSL Zertifikat erstellen

Heute mal wieder etwas zum Thema Zertifikate. Hatten wir in letzter Zeit zwar schon öfters, siehe Zertifikat auslesen oder selbst signiertes Zertifikat erstellen. Um Letzteres soll es heute ebenfalls gehen. Der Unterschied ist allerdings, das es heute um eine Tomcat SSL Zertifikat in einer Windows Umgebung gehen soll. 

Der Vorgang funktioniert natürlich ebenfalls unter Linux in ähnlicher Weise, lediglich die Pfade sind andere.

Tomcat - selbstsigniertes SSL Zertifikat erstellen

Als erstes Schritt wird eine Konsole geöffnet (CMD). Als nächstes muss der Pfad der Java Installation gesucht werden. Im Normalfall ist das sowas wie:

C:\Program Files\Java\jdk1.7.0_51\bin oder

C:\Program Files \Java\jre7\bin

Solltet ihr den Pfad nicht finden, könnt ihr auch einfach nach der Datei "keytool.exe" suchen.

java-pfad

Sobald der Pfad gefunden ist, muss nur noch ein langer Befehl mit dem Keytool aufgerufen und danach die richtigen Werte hinterlegt werden.

  • keyalg RSA - Verschlüsselungsart
  • alias selfsigned - Selbstsigniertes Zertifikat
  • validity 3600  - Gültigkeit 10 Jahre
  • keysize 2048 - Schlüsselänge 2048

keytool -genkey -keyalg RSA -alias selfsigned -validity 3600 -keysize 2048

zertifikat-tomcat

Bei der Abfrage müssen die üblichen Werte hinterlegt werden. Am wichtigsten ist wie immer der CN Name, der hier als "First and Last Name abgefragt wird. Auch ein Passwort für den Keystore sollte hinterlegt werden, um diesen besser zu schützen.

Enter keystore password:

What is your first and last name?

  [Unknown]: 127.0.0.1

What is the name of your organizational unit?

  [Unknown]:

What is the name of your organization?

  [Unknown]:  Blog

What is the name of your City or Locality?

  [Unknown]:  Leipzig

What is the name of your State or Province?

  [Unknown]:

What is the two-letter country code for this unit?

  [Unknown]:  DE

Is CN=127.0.0.1, OU=Unknown, O=Blog, L=Leipzig, ST=Unknown, C=DE correct?

  [no]:  yes

Enter key password for <selfsigned>

        (RETURN if same as keystore password):

Re-enter new password:

In der Standardeinstellung wird der Keystore in eurem Benutzer Ordner abgelegt. Hier kann er im Prinzip auch liegen bleiben.

"C:\Users\Name\.keystore" 

Das Gröbste ist jetzt erledigt. Nun muss nur noch dem Tomcat Server mitgeteilt werden, dass er SSL verwenden soll. Hierzu muss die Server.xml editiert werden. Sie befindet sich im Normalfall unter

"C:\Tomcat-Installation\conf\server.xml" 

Habt ihr die Datei gefunden, müsst ihr nur den passenden Bereich freischalten und schon sollte euer Server unter https://127.0.0.1:8443 erreichbar sein.

<Connector port="8443" maxHttpHeaderSize="8192"

                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

                   enableLookups="false" disableUploadTimeout="true"

                   acceptCount="100" scheme="https" secure="true"

                   clientAuth="false" sslProtocol="TLS" SSLEnabled="true"

                   URIEncoding="UTF-8" keystorePass="xxx"

  keystoreFile="C:\Users\Username\.keystore"/>

zertifikat-tomcat-erstellen

Zum Schluss muss noch der Tomcat Dienst neu gestartet werden und eure Installation ist unter HTTPS erreichbar.

SSL-Verschlüsselung für Tumblr aktivieren

Nicht nur auf Androiden kann sicher gesurft werden, auch die Blogging Plattform Tumblr bietet nun sichere SSL-Verschlüsselung an. Leider ist die Funktion von Haus aus nicht aktiv, warum will ich hier lieber nicht hinterfragen.

Ihr müsst für mehr Sicherheit euer Profil aufrufen http://www.tumblr.com/settings/account und den Regler unter dem Punkt "Sicherheit" nach Rechts verschieben. Thats it.

Tumblr-ssl

Sicherheit hat leider immer noch seinen Preis, so scheint die Erweiterung XKit bisher Probleme mit SSL zu haben, an einer Lösung wird gearbeitet.

Welche SSL Cypher Suites unterstützt mein Browser?

Was ist eine Cypher Suite? 

Viele Seiten sind inzwischen über HTTPS zu erreichen, das heißt, es wird eine verschlüsselte Verbindung zwischen Browser und Webserver aufgebaut. Damit diese Verbindung zustande kommt, werden Cyper Suites (Chiffrensammlung) benötigt, dabei handelt es sich um eine Zusammenstellung von vier Algorithmen, die für verschiedene Funktionen zuständig sind.

Bei Browsern wie Chrome oder Firefox wird TLS zur Verschlüsselung einer Verbindung verwendet. Hier kommen folgende Algorithmen zum Einsatz:

  • Schlüsselaustausch (Key Exchange)
    • z.B. RSA,  ECDH, SRP, PSK
  • Authentifizierung (Authentication)
    • z.B. RSA,  ECDSA
  • Hashfunktion
    • z.B. MD5, SHA1
  • Verschlüsselung (Encryption) 
    • z.B. RC4, DES, 3DES, IDEA, AES

Wo sehe ich im Browser, welche Verschlüsselung gerade verwendet wird?

Um herauszufinden, welche TLS Version mit welcher Verschlüsselung verwendet wird, muss einfach auf das Schloss in der Adressleiste geklickt werden. Dies funktioniert sowohl im Firefox, als auch im Chrome Browser. 

tls-browser

Hier seht ihr ein Beispiel aus Chrome, welcher TLS 1.1 unterstützt, gleiches gilt für den Firefox.

Im Browser könnt ihr nur die aktuelle Verbindung analysieren und sehen welche Verschlüsselung zum Einsatz kommt. Es ist jedoch so, dass jeder Browser eine Vielzahl von Cypher Suites anbietet und der Webserver zwischen diesen eine auswählt.

Welche SSL Cypher Suites unterstützt mein Browser?

Um alle unterstützen Cyper Suites eines Browsers anzeigen zu lassen, bietet die Uni Hannover eine Test Webseite an, die genau diese Funktion zur Verfügung stellt. Neben den Chiffrensammlungen, wird der Browsertyp, die TLS Version, sowie das RAW Format angezeigt.

Cipher-Suites

Für die Seite der Uni Hannover wurde in diesen Beispiel "DHE-RSA-CAMELLIA256-SHA" verwendet. Diese kryptisch anmutende Bezeichnung lässt sich leicht aufschlüsseln.

Es wurde mit Diffie Hellman der Schlüssel ausgetauscht (Diffie Hellman Exchange).

Die Authentifizierung erfolgte durch RSA.

Die Nachrichtenverschlüsselung geschah mit Hilfe von Camellia und 256bit,

als Nachrichtenauthentifizierung (Hash Message Authentication Code) wurde SHA verwendet.

Einfacher als gedacht, oder?


Twitter auf Https umstellen

Twitter hat endlich die Möglichkeit geschaffen, seine Seiten via "https"  zu nutzen. Mit einfachen Schritten kann man dies umstellen.

Dazu geht man auf sein Twitter Profil z.B. http://twitter.com/IT_rig

twitter

Dort wählt man "Profil bearbeiten" aus. Auf der nächsten Seite kommt man sofort auf seine "Account Einstellungen". Nun scrollt man ganz nach unten und setzt den Hacken bei "Nutze immer https". Nun geht man noch auf "Speichern", bestätigt dies mit seinem Passwort und schon ist man ein Stück sicherer auf Twitter unterwegs.

twitter


Facebooks angebliche https Sicherheit

Am Samstag erst berichtete ich über mehr Sicherheit bei Facebook mittels "https". Diese verschlüsselte Verbindung ist aber mehr oder weniger verarsche, wie heise meldet. Denn öffnet man z.B. eine Anwendung (CityVille oä.) kommt folgende Meldung:

fb_https

Sobald man nun auf "Weiter" klickt wird der Hacken in den Kontoeinstellungen wieder deaktiviert und man wechselt dauerhaft auf eine Standardverbindung. Wählt man "Abbrechen" bleiben die Einstellungen zwar erhalten, jedoch startet die App nicht. Man kann nun zwischen Pest und Cholera wählen. Also entweder die verschlüsselte Verbindung nach jeder App erneut aktivieren oder das nutzen selbiger komplett einstellen und auf der sicheren Seite bleiben.

Facebook sollte da schnellstmöglich nachbessern.