lighttpd + etch + openssl

Pour paramétrer un accès SSL avec lighttpd sous debian Etch, se connecter avec root (avec “sudo” ou “su -”) et commencer par installer lighttpd et openssl:

apt-get install lighttpd openssl

Vérifier que Lighttpd supporte bien le SSL:

lighttpd -v
lighttpd-1.4.13 (ssl) - a light and fast webserver
Build-Date: Jul 22 2008 12:20:22

Si vous possédez pas encore de certificat, c’est le moment! commencer par générer la clé privée “ssl.key” dans “/etc/lighttpd/openssl”. Attention, ne perdez pas ce fichier et ne le publiez pas!

mkdir -p /etc/lighttpd/openssl/ && cd !$ openssl genrsa -des3 -out ssl.key 1024

Puis la demande de certificat transitoire grâce à cette même clé:

openssl req -new -key ssl.key -out ssl.csr

Cette demande de certificat doit être transmise à votre autorité de certification préférée (par exemple thawte) qui vous renverra un certificat en bon et du forme en échange de menue monnaie. Enregistrer ce fichier sous “/etc/lighttpd/openssl/ssl.crt”.

Enfin créer à partir de votre clé privée “ssl.key” et du certificat tout frais “ssl.crt” le fichier “ssl.pem” dont à besoin Lighttpd:

cat ssl.key ssl.crt > ssl.pem

Protéger les fichiers en vérifiant les droits (en lecture seule pour lighttpd uniquement):

chown -R www-data:www-data /etc/lighttpd/openssl
chmod 0700 /etc/lighttpd/openssl
chmod 0400 /etc/lighttpd/openssl/*

Transférer TOUS les accès sur le http (port 80) vers le https (port 443) en ajoutant/modifiant dans le fichier “/etc/lighttpd/lighttpd.conf”:

$SERVER["socket"] == ":80" {
  $HTTP["host"] =~ "(.*)" {
    url.redirect = ( "^/(.*)" => "https://%1/$1" )
  }
}

Et y activer la prise en charge du protocole SSL en ajoutant/modifiant:

$SERVER["socket"] == ":443" {
  ssl.engine = "enable"
  ssl.pemfile = "/etc/lighttpd/openssl/ssl.pem"
}

Relancer le serveur web…

invoke-rc.d lighttpd restart

…et à vous les accès sécurisés :)

Tags:  lighttpd, linux, openssl

Articles relatifs

Taille de la console avec grub

Principaux modes d’affichage console avec GRUB:

vga=0x303  (800 x 600 / 80 columns x 30 lines)
vga=0x305  (1024 x 768 / 100 columns x 37 lines)
vga=0x307  (1280 x 1024 / 128 columns x 48 lines)

Ce paramètre (vga=0×303) est à ajouter à la ligne “kernel” lors du boot (appuyer sur la touche “e” pour éditer la ligne) ou dans le fichier “/boot/grub/menu.lst”.

Tags:  grub, linux

Articles relatifs

Un Android à votre service

À l’heure où le HTC Diamond a su peaufiner sa sortie (malgré le Windows Mobile Pro embarqué…) avant la mise sous licence Libre du Symbian OS de Nokia et l’attendu iPhone 3G (sortie prévue dans quelques jours maintenant), il est un système OpenSource qui fait doucement mais surement son chemin: Android.

Il s’agit non pas d’un téléphone mais plus précisément du système qui fait fonctionner le téléphone. Google, membre de l’Open Handset Alliance, fournit un kit de développement (SDK) pour se faire la main et proposer une logithèque à la sortie des premiers modèles d’ici à la fin 2008. Le cœur du système est basé sur un Linux 2.6, lequel fait fonctionner une machine virtuelle Java (baptisée Dalvik, une version OpenSource du Java propriétaire de SUN). Cette JVM fera bien tourner des applications J2SE (Java standard patché) et non les J2ME (Micro Edition) plus légères que l’on retrouve sur les Nokia par exemple. De nombreuses bibliothèques implémenteront OpenSSL, SQLite ou encore OpenGL (!) pour ne citer qu’eux.

Le SDK fournit donc de quoi compiler le code source de sa merveilleuse :) application Java et une machine virtuelle (sous ARM) est disponible via QEmu pour tester en live son programme. Voici quelques shots pour vous donner une idée (dont ma première appli, le moche mais classique HelloWorld sauce ludomatic):

Google Maps (sur la 2ème Vallée du tir):

Le navigateur Web (basé sur populaire WebKit):

De quoi faire :)

Pour les sceptiques, voir la liste des 50 applications pré-sélectionnées (dont le PDF avec Screenshots plus explicites) lors d’un concours organisé par Google.

Vive le Libre!

Tags:  android, google, java, linux

Articles relatifs

MameCab Debian

Je commence tout juste la rédaction d’un article sur le montage d’une borne d’arcade personnelle basée sur:

  • Debian Gnu/Linux
  • MAME®
  • SDLMAME
  • iPac2

Le draft est disponible sur mon wiki. Enjoy :)

Tags:  debian, linux, mame

Articles relatifs

MySQL: changer le mot de passe root perdu

Oui oui, ça n’arrive pas qu’aux autres de ne plus retrouver son mot de passe “root” sous MySQL. Saisi sur le coup lors de l’installation pour ne pas le laisser vide, impossible de s’en rappeler plusieurs mois après…
Bref, voici la manip’ pour remédier à mes trous de mémoire (Ubuntu Feisty et MySQL 5.x) :

    1. On coupe le serveur par défaut :

      # invoke-rc.d mysql stop
      On relance manuellement le serveur en ignorant la table des droits des utilisateurs :

      # mysqld --skip-grant-tables
      Dans un nouveau terminal/console, on peut se connecter sans mot de passe à la base mysql :

      $ mysql -u root mysql
      On remplace l’ancien mot de passe par le nouveau, puis on recharge les droits et on ferme la connexion (le tout sur une même ligne ou les 3 commandes successives) :

      UPDATE user SET password=password('VOTRE_MOT_DE_PASSE_ICI') WHERE user='root';
      flush PRIVILEGES;
      exit;
      On peut fermer le terminal/console et revenir sur la première pour arrêter notre serveur lancé manuellement. Relancer MySQL avec la commande :

      # invoke-rc.d mysql start
      La connexion doit maintenant se faire sans soucis avec le compte root :

      $ mysql -u root -p

PS: utiliser le fabuleux Keepass

Tags:  linux, mysql, sécurité

Articles relatifs

Zend Framework et PDO-MySQL

Une petite note rapide sur les étapes d’installation de PDO_MySQL qu’utilise le framework de Zend sur un environnement Ubuntu Edgy - Apache2 - PHP5 (Je considère que PHP5 et Apache2 sont installés):

    1. installer les outils minimums nécessaires à la compilation:

      $ sudo apt-get install build-essential
      installer les librairies PEAR (dont PECL), et les “headers” pour PHP et MySQL:

      $ sudo apt-get install php-pear php5-dev libmysqlclient15-dev
      Mettre à jour les paquets PECL existants:

      $ sudo pecl upgrade-all
      Installer directement PDO_Mysql (installera PDO par dépendance) avec la variable PHP_PDO_SHARED initialisée à “1″:

      $ export PHP_PDO_SHARED=1 && sudo pecl install pdo_mysql
      Faire charger PDO et PDO_MySQL par PHP ( /!\ vérifier le chemin du .ini):

      $ sudo echo "extension=pdo.so" >> /etc/php5/apache2/php.ini
      $ sudo echo "extension=pdo_mysql.so" >> /etc/php5/apache2/php.ini
      Idem pour installer l’extension PDO pour SQLite:

      $ export PHP_PDO_SHARED=1 && sudo pecl install pdo_sqlite
      $ sudo echo "extension=pdo_sqlite.so" >> /etc/php5/apache2/php.ini
      Enfin, redémarrer Apache pour appliquer les changements:

      $ sudo apache2ctl restart
      pour trouver d’autres extensions, utiliser:

      $ sudo pecl search pdo

That’s it !

Tags:  linux, mysql, pear, php, zend

Articles relatifs

Dump, charset et packets avec mySQL

Suite au transfert d’un de mes domaines vers un nouvel hébergeur, j’ai récupéré la base de données MySQL existante via phpMyAdmin pour la réinjecter sur le nouveau serveur. Or à l’arrivée, je me retrouve avec tous mes caractères spéciaux (accents, cédilles, etc) qui ne sont plus pris en compte:
Calendrier prévisionnel pour 2006 à télécharger
En fait, la base mysql originale était sur un serveur dont le charset était défini en UTF8 alors que le nouveau serveur fonctionne avec le charset latin1. Pour importer la base proprement, il a donc suffit de spécifier à mysql le charset par défaut avec “default-character-set” :

mysql ma_base < mon_fichier.sql --default-character-set=utf8 -u mon_login -p

Autre souci, En observant les logs j’ai remarqué plusieurs erreurs concernant des tailles de paquets qui dépassaient la limite autorisée lors de mon importation :

...
Query OK, 1 row affected (0.01 sec)
ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes
ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes
Query OK, 1 row affected (0.01 sec)
Query OK, 1 row affected (0.02 sec)
Query OK, 1 row affected (0.02 sec)
ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes
Query OK, 1 row affected (0.01 sec)
...

Cette erreur vient de la taille d’un de mes champs du type LONGBLOB que j’utilise pour y stocker directement des fichiers : les données stockées dépassent pour certaines la limite autorisée par défaut. Un simple changement dans le fichier /etc/my.cnf suffit :

[mysqld]
max_allowed_packet=32M

Et hop, tout s’est déroulé à merveille.

Tags:  charset, linux, mysql

Articles relatifs

Touches de raccourcis: XBindKeys

Sur mon PC portable (CLEVO M400A) je dipose de 5 touches de fonction qui ne sont pas prises en charge sous ma Kubuntu (actuellement en version Edgy Eft / 6.10).
ClevoM400AQu’à cela ne tienne, XBindKeys va résoudre ce petit souci :) Commencer par installer les paquets “xbindkeys” et “xbindkeys-config” via un terminal :
$ sudo apt-get install xbindkeys*
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances
Reading state information… Fait
Note, sélectionne xbindkeys pour l’expression rationnelle « xbindkeys* »
Note, sélectionne xbindkeys-config pour l’expression rationnelle « xbindkeys* »
(…)
Une fois ceci fait, vous pouvez lancer l’utilitaire graphique “xbindkeys-config” :
$ xbindkeys-config
xbindkeys-configCliquez alors sur le bouton [GET KEY] puis appuyez sur la touche de fonction voulue. Son code s’inscrira dans la zone de saisie “Key:”, il vous suffira alors de renseigner la commande associée dans la zone “Action:”.
Par exmple, lorsque j’appuie sur le bouton de fonction qui coupe le volume (code clavier 160), j’utilise la commande suivante :
amixer -q sset Front,0 toggle
Une fois votre configuration terminée, vous pouvez sauver votre fichier via le menu FILE > Save to default file. Ceci va créer le fichier “.xbindkeysrc” dans votre dossier utilisateur. Voici par exemple mon fichier :
#Mute (keycode 160) toggles mute state of Master channel
“amixer -q sset Front,0 toggle”
c:160

#Volume-down reduces the volume of Master channel
“amixer -q sset Front,0 5-”
c:174

#Volume-up increases the volume of Master channel
“amixer -q sset Front,0 5+”
c:176

#Konqueror FileManager
“konqueror –profile filemanager /home/ludo/tmp”
c:236

#Firefox @ gmail
“swiftfox %u http://gmail.com”
c:178
Pour finir, sachez que l’utilitaire xbindkeys ne se lancera pas automatiquement. Pour activer mes touches de fonction au démarrage, j’ai ajouté la commande “xbinkeys” dans le fichier “configclavier.sh” de mon dossier “Autostart” :
$ cd ~/.kde/Autostart/
$ echo “#!/bin/bash” > configclavier.sh
$ echo “xbindkeys &” >> configclavier.sh
$ chmod +x ./configclavier.sh
A chaque démarrage de ma session Kubuntu, le fichier configclavier.sh sera exécuté automatiquement et lancera en tâche de fond l’utilitaire xbindkeys.

Tags:  linux, xbindkeys

Articles relatifs