Neues SSL-Zertifikat und spdy Unterstuetzung

Ab heute hat mein Blog ein neues SSL-Zertifikat von CAcert.org. Wenn mich jemand „assuren“ wuerde, waere ich dem sehr dankbar.

Weiter ist mein Blog nun auch ueber spdy erreichbar. Ein deutlicher Geschwindigkeitszuwachs, um es mal einfach auszudruecken. Die Installation gestaltete sich sehr einfach: runterladen, installieren, Apache neu starten, fertig. Das Apache-Modul gibt es hier bei Google.

Um in den Genuss des schnelleren Seitenaufbaus zu kommen als Firefox-Nutzer unter about:config nach network.http.spdy.enabled suchen und auf true setzen.

HowTo: multiple Apache2 vhosts mit unterschiedlichen SSL-Zertifikaten

Die Aufgabe: in Apache bei verschiedenen vhosts verschiedene SSL-Zertifikate fuer die Verschluesselung definieren.
Das Problem: mit mod_ssl laesst sich das ganze nicht so einfach realisieren.
Die Ursache: vhosts basieren auf Basis von HTTP-Headers, SSL liegt ein Layer darunter. Die Verbindung wird gesichert bevor HTTP gesprochen wird. Der Server kann bei Verbindungsaufbau nicht wissen welchen vhost er danach bedienen soll, deswegen kann er das richtiger Zertifikat nicht auswaehlen.
Die Loesung: mod_gnutls
HowTo: das ganze unter Debian Lenny

Ich gehe an dieser Stelle davon aus, dass man bereits SSL-Zertifikate generiert hat (blubs).

Als naechstes ist es nun wichtig das Modul zu installieren, anzupassen und zu aktivieren:

aptitude install libapache2-mod-gnutls

Danach die /etc/apache2/mods-available/gnutls.conf anpassen:

<IfModule mod_gnutls.c>
  GnuTLSCache dbm /var/cache/apache2/gnutls_cache
 
  AddType application/x-x509-ca-cert .crt
  AddType application/x-pkcs7-crl    .crl
 
  GnuTLSCacheTimeout 300
  NameVirtualHost *:443
</IfModule>

und das Modul aktivieren:

a2enmod gnutls

Nun noch die Zeile:

Listen 443

zu der /etc/apache2/ports.conf hinzufuegen und dabei darauf achten, dass die Zeile vor der „Listen 80“ steht, da es sonst in der /var/log/apache2/error.log zu den folgenden Zeilen kommen kann:

[Sun Dec 05 14:37:06 2010] [error] [client ::1] GnuTLS: Handshake Failed (-8) 'A record packet with illegal version was received.'

Nun koennen die vhosts entsprechend eingerichtet werden. Hier ein generisches Beispiel fuer einen vhost:

<VirtualHost *:443>
    ServerAdmin webmaster@example.net
    ServerName www.example.net
    ServerAlias example.net
    DocumentRoot /var/www/example.net/
 
    <Directory /var/www/example.net/>
        Options +Indexes
    </Directory>
 
    GnuTLSEnable on
    GnuTLSCertificateFile /etc/ssl/myCA/private/www.example.net-key-cert.pem
    GnuTLSKeyFile /etc/ssl/myCA/private/www.example.net-key-cert.pem
    GnuTLSPriorities SECURE:!MD5
 
    CustomLog /var/log/apache2/example.net-access.log combined
</VirtualHost>

Nach einem Neustart von Apache2 kann nun per https auf den gewuenschten vhost zugegriffen werden, viel Spass beim Einrichten des zweiten und freien wenns klappt!

Firefox Lesezeichen ueberall – Selfmade!

Ich arbeite an vielen unterschiedlichen Computern und moechte ueberall die gleichen Lesezeichen immer synchron haben. Es faellt mir jedoch schwer die Daten einer Firma zu geben die mit der Auswertung meiner Daten und dann Werbung oder aehnlichem Geld verdient. Ich arbeite schon laenger mit Foxmarks und neuerdings heisst es ja Xmarks. Durch einen kleinen Beitrag in der neuen CT hab ich mich nu auch mal aufgerafft und habe die Lesezeichen auf meinen eigenen Server verfrachtet. Im folgenden die erforderlichen Schritte dahin:

aptitude install apache2
a2enmod dav
a2enmod dav_fs
a2enmod ssl
/etc/init.d/apache2 force-reload
cd /var/www/
mkdir webdav
chown www-data:www-data webdav
htpasswd -c .htpasswd-webdav USERNAME
chown root:www-data .htpasswd-webdav
chmod 640 .htpasswd-webdav

Die folgenden Zeilen in die /etc/apache2/sites-available/default-ssl hinzufuegen:

    <VirtualHost *:443>
    ServerAdmin webmaster@example.net
    ServerName webdav.example.net
    DocumentRoot /var/www/webdav
 
        SSLEngine On
        SSLCertificateFile      /etc/apache2/MYSSLCERT.pem
        SSLCertificateKeyFile   /etc/apache2/MYSSLCERT.pem
 
        <Directory /var/www/webdav/>
                Options Indexes MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
 
        <Location />
           DAV On
           AuthType Basic
           AuthName "Webdav"
           AuthUserFile /var/www/.htpasswd-webdav
           Require valid-user
       </Location>
 
</VirtualHost>

Apache neustarten und testen ob alles geht. Beim verbinden mit cadaver muesst Ihr das Zertifikat akzeptieren und dann mit den in der .htpasswd-webdav gespeicherten Userdaten einloggen. Wieder rauskommen tut ihr mit „quit“.

/etc/init.d/apache2 restart
aptitude install cadaver
cadaver https://webdav.example.net

So, das wars auch schon fast! Nun muesst Ihr nur noch das Xmarks Firefox-Plugin installieren und in den Einstellungen unter „Erweitert“ die Option „Eigenen Server verwenden“ aktivieren und als Lesezeichen und Passwort-URL die URL zu eurem Server angeben. ACHTUNG!: Es muss auch eine Datei angegeben werden und nicht nur ein Verzeichnis! Bsp:

  • LesezeichenURL: https://webdav.example.net/bookmarks.json
  • Passwort-URL: https://webdav.example.net/passwords.json

Ich persoenlich habe die Passwort-synchronisation jedoch deaktiviert (genauso wie auch den ganzen Extrakram unter „Entdecken“, nervt nur). Nun einmal noch im Erweitert-Tab auf „Hochladen“ klicken und zusehen und evtl. Zertifikat akzeptieren, Benutzernamen und Passwort eingeben und zusehen wie die Daten hochgeladen werden. Viel Spass :)