systemx

Aller au contenu | Aller au menu | Aller à la recherche

mercredi, juin 13 2012

Créer un certificat auto signé en script

Le but de la manip est de générer des certificats autosignés par script (incluant un CSR).
La manip standard se décompose en 3 étapes :
  1. Génération de la clé privée
  2. Génération du CSR avec la clé privée
  3. Le CSR peut aussi être utilisé pour acheter un certificat chez un fournisseur.
  4. Génération du certificat
On commence le script par les variables :
CERTDIR=/etc/apache/cert
CERTDOMAIN=mydomain.com
CERT_CONFIG_FILE=/tmp/certconfig

  1. clé privée
  2. openssl genrsa -out $CERTDIR/CERTDOMAIN.key 2048
    chmod 400 $CERTDIR/CERTDOMAIN.key
    
    2048 est le nombre de bits.
  3. CSR
  4. Pour générer le CSR il faut remplir un certain nombre de champs en interactif. Pour contourner l'interactivité il faut créer un fichier de propriété qui sera passé en paramètre de la demande du CSR.
    cat << fin > $CERT_CONFIG_FILE
    [ req ]
    default_bits = 2048
    encrypt_key = yes
    distinguished_name = req_distinguished_name
    prompt = no
    
    [ req_distinguished_name ]
    C=FR
    ST=France
    L=Paris
    O=MA SUPER BOITE
    OU=WEB DIVISION
    CN=$CERTDOMAIN
    emailAddress=root@localhost
    fin
    
    Puis générer le csr :
    openssl req -verbose  -config $CERT_CONFIG_FILE  -new -key $CERTDIR/$CERTDOMAIN.key -out $CERTDIR/$CERTDOMAIN.csr
    
  5. CERT
  6. Enfin le certificat :
    openssl x509  -days 9999 -req -in $CERTDIR/$CERTDOMAIN.csr  -signkey $CERTDIR/$CERTDOMAIN.key -out $CERTDIR/$CERTDOMAIN.cert
    

Pour utiliser ca dans apache il suffit de faire un vhost en SSL :
cat << fin >> /etc/httpd/vhosts.d/$CERTDOMAIN.conf
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile $CERTDIR/$CERTDOMAIN.cert
SSLCertificateKeyFile $CERTDIR/CERTDOMAIN.key
fin

mercredi, août 31 2011

Formater et publier des video html5 sous linux avec apache


Voulant poster des vidéo sur le net, j'ai décider de créer  sur mon server une page html5.

Derrière la simplicité de la syntaxe html5 se cache l'enfer des formats vidéos.
N'ayant pas voulu prendre partie de W3C a laissé l'encodage libre.

On se retrouve avec des formats supportés par certains browser et pas d'autres ... LE bonheur.
Évidement IE qui reste le browser numéro un (pour combien de temps ?) supporte pas les formats libres de tous les autres et presque vis versa (reference wikipedia).

Ensuite les formats vidéos c'est pas simple, pour des infos détaillées voir cette page (englishe).

Un bon outil pour nous aider sous linux, arista qui propose des formats de manière simple :
arista menu

On peut choisir facilement le type de fichier de sortie sans avoir à se poser des questions existentielles sur le format video/audio comme on doit le faire dans avidemux.
On peut même downloader des presets supplémentaires sur le site arista, peu de nouveautés mais l'idée est intéressante.
Arista est dispo sur sabayon via equo mais il faut aussi faire attention d'avoir certaines extentions gstreamer au risque de se prendre un message très parlant :

Impossible d'ajouter l'objet à la file car il manque des éléments!


Ca veut dire dans mon cas que je n'ai pas le plugin gstreamer nécessaire pour faire la conversion, un simple ajout via equo fera l'affaire :
equo install media-plugins/gst-plugins-vp8-0.10.22

Il suffit ensuite de cliquer sur le bouton qui va bien et hop on a notre fichier transcodé.
Enfin il faut aussi ajouter une petite configuration mime sur apache (sous debian /etc/apache2/mods-enabled/mime.conf) :
AddType video/ogg  .ogv
AddType video/mp4  .mp4
AddType video/webm .webm
Pour le code html5 je laisse l'excellent site Alsace Creation donner les explications.

PS : Une fois de plus quel plaisir de travailler en open source, je me rappelle la vie d'avant récupérer des logiciels sous windows avec tous les malwares, popup, virus, registery et autres saloperies ....
ahh liberté.

vendredi, janvier 14 2011

Valider la page admin tomcat et sécuriser les mots de passe

J'ai installé tomcat 5.5 (5.5.31) dans le repertoire /opt/tomcat.
Après l'installation je me connecte à la page d'admin et :

Tomcat's administration web application is no longer installed by default. Download and install
the "admin" package to use it.

Diantre que diable dois je faire ?
Installer le webapp d'admin bien sûr à recupérer sur :
http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.31/bin/
C'est un tar qui part de la racine de tomcat .. Par terrible.
Le placer dans le repertoire webapps puis restart, on voit bien l'application mais à chaque fois que l'on se connecte sur /admin on a toujours le même message.
Il faut retirer le fichier index.html de : /opt/tomcat/webapps/ROOT/admin et miracle ca fonctionne.
Pour les utilisateurs il faut aller dans le fichier ; /opt/tomcat/conf/tomcat-users.xml.
Ajouter des roles pour manager et admin puis les users.
Le mot de passe est en clair, pas terrible.
Pour crypter les mots de passe il faut aller dans le server.xml et changer le "digest" (un peu à la mode apache d'ailleurs)...
Ajouter au niveau de (en dessous)
Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"

digest="MD5"
digestEncoding="UTF-8"

Ensuite on peut mettre un passwd md5 dans le fichier tomcat-users.xml et redemarrer tomcat.
A noter que le md5 est peut etre pas le plus secure.

lundi, avril 20 2009

Awstat/Jawstats - Analyseur de traffic web.

- Awstat C'est un outil d'analyse du traffic de sites webs. Le gros avantage est de ne pas avoir à utiliser de code particulier à insérer dans les pages du site. Il fonctionne en analysant les fichiers de log du serveur.
Inconvénient il ne peut pas faire beaucoup plus que ce qui est dans écrit dans le fichier de log. Pour analyser plusieurs sites il faut avoir des fichiers de log séparés. Testé et fonctionnel sur Apache et Lighttpd.
- Jawstat Ajoute un petit coté sexy à Awstat grâce à une jolie interface Ajax. Par contre j'ai vraiment galéré pour installer l'outil. Une simple broutille après avoir trouvé ...
TRES TRES IMPORTANT : La valeur de 'aConfig' -> chaine.fichier.awstats doit correspondre exactement au nom de fichier généré par awstats.
Par exemple le fichier awstats devra selon la syntaxe ci dessus s'appeler awstatsDDYYYY.chaine.fichier.awstats.txt
$aConfig["chaine.fichier.awstats"] = array(
"statspath" => "/path réél/wwwroot/cgi-bin/",
"updatepath" => "/path réél/wwwroot/awstats.pl",
"siteurl" => "http://votre.url.com",
"theme" => "default",
"fadespeed" => 250,
"password" => "monpass",
"includes" => "" )

Enfin il n'est pas possible de mettre des mots de passes pour acceder à la page, j'utilise donc un .htaccess pour l'ensemble awstat/jawstats ce qui est ma fois pratique.

Sinon dans le genre on a aussi :
- Piwik : A l'air très interessant avec interface moderne mais nécessite une insertion de code dans l'appli ce qui est dur sur ce site ou j'utilise beaucoup d'outils open sources.
A noter qu'il existe un plugin dotclear !
- Webalyser : L'outil historique. Écrit en C donc certainement rapide mais pas utilisable pour moi qui veut pouvoir modifier le code et préfère la facilité de mise en œuvre de php.
Look un peu vieillot mais reste une référence, à essayer pour les pros.