Monthly Archives: Juni 2011

Kostenloses Wildcard SSL Zertifikat bei CACert

Da ich persönlich doch viel Wert darauf leg, dass meine Daten, wenn sie schon durchs Internet fließen, verschlüsselt übertragen werden, war eine meiner ersten Aktionen auf dem Server jede Verbindung wenigstens optional verschlüsselt anzubieten. Für die ersten Wochen erstellt ich nur schnell ein selbst signiertes Zertifikat, da ich um ehrlich zu sein keinen Kopf hatte mich näher mit dem ganzem Zertifikatthema zu beschäftigen.

Nun da ich am Wochenende mal ein wenig Zeit habe, hab ich mir das Thema nochmal genauer angeschaut.
Da auf dem Server noch ein paar andere Dienste laufen, welche ich gerne mit HTTPS absichern würde benötige ich also entweder für jeden Dienst/Subdomain ein eigenes Zertifikat, ein Multiple Domain Zertifikat oder besorge mir gleich ein WildCard Zertifikat.
Da ich nicht einsehen ein Haufen Geld bei VeriSign, Thawte oä. liegen zu lassen, schaute ich mich nach günstigeren/kostenloses Alternativen um. Die günstigste Alternative welche ich fand, war bei GoDaddy. Allerdings muss ich ehrlich sagen, ich bin nicht bereit 65€ für ein Multiple Domain Zertifikat inc. 5 Domains oder 132€ für ein WildCard Zertifikat hinzulegen. Dies wäre doch eine übertriebene Investition für einen kleine privaten Blog, welcher gerade mal 2 Wochen existiert. Also ging die Suche weiter…

Ja ich weiß, hört sich komisch an, aber Danke irgendwelcher Hacker wurde ich dann auf StartSSL aufmerksam. Diese bösen Mitmenschen hatte nämlich versucht in Server des israelischen Anbieters einzudringen um sich vermutlich dort Zertifikate für Domains auszustellen, welche nicht ihnen gehören. StartSSL ist die Zertifizierungsstelle des israelischen Unternehmen StartCom, welche kostenlos Zertifikate signiert und dessen Root Zertifikat in jedem aktuellen Browser integriert ist. Nach kurzer Recherche auf ihrer Website musste ich allerdings feststellen, dass das kostenlose Zertifikat nur für eine Domain gültig, um somit für mich unbrauchbar ist.
Ich kann jedem allerdings nur empfehlen sich solch ein Zertifikat zu holen, wenn er nur eine Domain damit absichern möchte!

Die Suche ging also weiter, und am Ende blieb ich dann bei CAcert hängen.
CAcert ist eine nicht kommerzielle Zertifizierungsstelle, welche sich zum Ziel gesetzt hat kostenlose Zertifikate an Privatpersonen auszustellen. Dies funktioniert deshalb, da CAcert keinen aufwendigen Verifizierungsprozess zu Validierung der Identität betreibt. Jeder der sich anmeldet kann direkt Client Zertifikate ausstellen.
Möchte man ein Server Zertifikat, ist hierfür der Zugriff auf eine Administrative Mail Adresse notwendig. Dort wird einem dann eine eMails zugeschickt, welche einen Link enthält um die Domain zu verifizieren.
Weitere Infos über die Funktionsweise von CAcert könnt ihr dem Wikipedia Eintrag entnehmen, da um ehrlich zu sein das komplette Thema hier den Rahmen sprengen würde.
Der Nachteil? Das Root Zertifikat von CAcert ist in keinem Browser vertreten! Sie versuchen zwar es in die einzelnen Browser zu integrieren, es wird denke ich aber noch eine Weile dauern bis es soweit ist.
Da mir das Prinzip hinter CAcert allerdings sehr gut gefällt, hab ich mich entschieden diesen Nachteil in Kauf zu nehmen.

Im folgenden möchte ich euch nun zeigen wie ihr ein WildCard SSL Zertifikat erstellt, bei CAcert signieren lasst, im Apache einbindet und eurem Browser das Root Zertifikat von CAcert beibringt:

Voraussetzung:

  • Abgeschlossene Registrierung bei CAcert inc. Validierung der Domain
  • Apache2 Webserver mit aktiviertem HTTPS Modul
  • OpenSSL

Ich habe das ganze auf einem Ubuntu 10.04 getestet, ich denke allerdings das es auf anderen Systemen genauso funktionieren wird.
Ihr geht also nun her und erstellt euch mit OpenSSL ein Zertifikat:

openssl req -newkey rsa:2048 -subj /CN=*.s0me0ne.de -nodes -keyout s0me0ne.de_key_.pem -out s0me0ne.de.csr.pem
cat s0me0ne.de.csr.pem

Nun kopiert man ab „—–BEGIN CERTIFICATE REQUEST—–“ bis „—–END CERTIFICATE REQUEST—–“ alles und fügt das ganze bei CAcert in die Server-Zertifikate Maske ein. Danach muss nur noch einmal bestätigt werden das man das Zertifikat tatsächlich ausstellen möchte. Das Zertifikat speichern wir nun auf dem Server und passen die Apache Config dementsprechend an:

<VirtualHost *:443>
...
        SSLEngine on
        SSLCiphersuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:+SSLv2:+SSLv3:TLSv1:-LOW
        SSLCertificateFile /path/to/sslfile/s0me0ne.de_certificate.pem
        SSLCertificateKeyFile /path/to/sslfile/s0me0ne.de_key_.pem
        SSLVerifyDepth 2048
        SSLVerifyClient none
...
</VirtualHost>

Danach müsst ihr nur noch einmal den Apache restart und schon sollte das Zertifikat genutzt werden können.

/etc/init.d/apache2 restart

Nun muss nur noch das Zertifikat in die verschiedenen Browser eingetragen werden. Ich beschränke mich hier auf die 3 meist genutzten Browser (Mai 2011).

Das Root Zertifikat von CAcert bekommt ihr hier.

Firefox
–> Einstellungen –> Erweitert –> Verschlüsselung –> Zertifikate anzeigen –> Zertifizierungsstellen –> Importieren

  • – root.crt auswählen
  • – Hacken setzen bei „Dieser CA vertrauen, um Websites zu identifizieren.“
  • – Mit OK bestätigen

Chrome/Internet Explorer
Da Chrome auf dem Zertifikatsspeicher von Windows/Internet Explorer aufbaut, hier hier nur einmal folgendes durchzufügen:
–> Systemsteuerung –> Internetoptionen –> Inhalte –> Zertifikate –> Vertrauenswürdige Stammzertifizierungsstellen –> Importieren

  • – Weiter –> root.crt auswählen –> Weiter –> Weiter –> Fertig stellen
  • – Sicherheitsabfrage mit „Ja“ beantworten.

 

6 Comments

Filed under Allgemein, Linux

PowerShelll ISE und das signieren…

Zur Zeit beschäftige ich mich auf der Arbeit ziemlich viel mit PowerShell, da die Sprache super Möglichkeiten bietet Windows zu automatisieren. Meiner Ansicht nach wäre Linux wohl nicht so groß geworden hätte Microsoft schon früher eine Script Sprache zu Automatisierung bereitgestellt die anständig entwickelt wurde. Aber gut darum solls hier nicht gehen…

Gestern beschäftige ich mit dem Signieren von PowerShell Scripts um diese später in der kompletten Firma sicher ausführen zu können. Wie die Windows-CA Einrichtung funktioniert kann man hier nachlesen, um was es mir geht ist die eigentliche Signierung der Scripts. Dies kann wie folgt durchgeführt werden:
namespace Holding

Set-AuthenticodeSignature c:\foo.ps1 @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]

Dies soll dazu führen das der Script C:\foo.ps1 mit dem ersten Zertifikat aus dem lokalem Zertifikatestore “CurrentUser\My” signiert wird.
Wenn man nun allerdings den Script mit der von Microsoft entwickelten PowerShell ISE geschrieben hat, kommt es bei signieren immer und immer wieder zu einem “Unknown Error”. Nun kann man allerdings hergehen, den Inhalt der mit ISE geschrieben Script Datei in eine neue Datei in einem normalen Editor kopiert, diese abspeichert und signiert funktioniert es wunderbar.

Die logische Schlussfolgerung lautet also, die PowerShell ISE speichert die Scripts auf irgendeine andere Art und Weise ab, die nicht kompatibel zu der Signier-Funktion ist.
Warum dies geschieht ist mir völlig schleierhaft. Was macht es für einen Sinn eine eigene Entwicklungsumgebung raus zubringen, mit welcher man keine 100% kompatiblen Scripts erstellen kann?!?!

Naja Gott sei Dank gibt es von einem Drittanbieter ein Ersatztool. Das ganze nennt sich PowerGUI und ist kostenlos hier downloadbar.

Leave a Comment

Filed under PowerShell, Windows

Es war einmal…

… ein 19 Jähriger Mensch, der sich dachte ach man könnte ja mal anfangen zu bloggen. Da er damals das ganz erst noch testen wollte, begab er sich auf wordpress.com und erstellte sich einen Blog.
Fast ein Jahr später gräbt er den Blog wieder aus, nur um festzustellen das bisher kein weiterer Blogeintrag hinzugekommen ist, als der den er damals bei der Erstellung des Blogs angefertigt hat.

Nun hat der Blog ein neues Zuhause und läuft unter einem neuen Namen. Ich hoffe ich komme dazu euch ein wenig von meinem alltäglichen Kampf durchs Leben zu erzählen.
Ich werde hier Beiträge zu aller Art von Themen veröffentlichen. Da ich angehender Fachinformatiker für Systemintegration bin, liegt der Schwerpunkt zwar wahrscheinlich mehr auf Computer Themen, doch ich möchte auch anderen Themen hier eine Chance geben.
Kurz gesagt, dieser Blog hat kein Thema, er behandelt schlichtweg alles was mir im Alltag auffällt, gefällt, nicht gefällt oder was ich mir einfach mal aus dem Kopf schreiben möchte.

Ich hoffe es gefällt euch und ihr findet die ein oder andere Sache mit der ihr etwas anfangen könnte bzw die euch weiterhilft.

Leave a Comment

Filed under Allgemein