[TUTO] Créer son serveur pour le Push Gmail (Linux)

Aller en bas

[TUTO] Créer son serveur pour le Push Gmail (Linux)

Message par bastok le Jeu 4 Juin 2009 - 12:28

Bonjour,

Si vous souhaitez créer votre propre serveur Z-Push, voici un tutoriel complet.
Il permet de faire de l'IMAP (Gmail par exemple) en SSL.

J'ai monté mon serveur sur Ubuntu 9.04, mais je pense que ce tuto est valide pour debian également.

Pour commencer, il vous faut apache et php et PEAR :

Code:
sudo apt-get install apache2 php5 libapache2-mod-php5 php5-xcache php5-imap php5-pear
sudo pear install --alldeps Mail

Ok, maintenant vous pouvez déposer les sources de Z-Push dans le dossier "/var/www/z-push" par exemple.
Elles se trouvent ici : Sources Z-Push
Personnellement j'utilise la 1.2.2RC, mais j'ai trouvé un petit bug, je vous dirais comment le corriger.

une fois les sources extraites, il faut définir quelques droits à Apache.

Code:
sudo chmod 755 /var/www/z-push/state
sudo chown www-data:www-data /var/www/z-push/state

Il faut maintenant configurer Z-Push pour marcher avec Gmail (par exemple)

Code:
sudo vi /var/www/z-push/config.php

Modifier les lignes comme dans l'exemple ci dessous, vous devriez les retrouver :

Code:
$BACKEND_PROVIDER = "BackendIMAP";
define('IMAP_SERVER', 'imap.gmail.com');
define('IMAP_PORT', 993);
define('IMAP_OPTIONS', '/notls/norsh/ssl')

Voilà pour la config de Z-Push.

Ensuite nous allons sécuriser le serveur apache en SSL :

Code:
sudo a2enmod ssl
cd /etc/apache2/sites-available/
sudo cp default ssl

Maintenant on génère un certificat :

Code:
openssl req -x509 -nodes -days 3650 -newkey rsa:1024 \
-out /etc/apache2/server.crt -keyout /etc/apache2/server.key

Attention, quand openssl vous demande "Common Name (eg, YOUR name) []", vous devez tapez le nom du domaine du serveur avec le sous-domaine, si vous n'avez qu'une ip, mettez là, ca marche aussi.

on édite la config ssl d'apache :

Code:
sudo vi /etc/apache2/sites-available/ssl

et vous pouvez remplacer le contenu par le bloc ci dessous :

Code:
<VirtualHost *:443>
        ServerAdmin webmaster@localhost
 
        SSLEngine on
        SSLCertificateFile /etc/apache2/server.crt
        SSLCertificateKeyFile /etc/apache2/server.key
 
        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
 
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
 
        ErrorLog /var/log/apache2/error.log
 
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
 
        CustomLog /var/log/apache2/access.log combined
 
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
 
   Alias /Microsoft-Server-ActiveSync /var/www/index.php
   php_flag magic_quotes_gpc off
   php_flag register_globals off
   php_flag magic_quotes_runtime off
   php_flag short_open_tag on
 
</VirtualHost>

un petit coup de rechargement de la config :

Code:
sudo /etc/init.d/apache2 restart

Bien, si je n'ai rien oublié, la config du serveur est terminée, maintenant il faut paramétrer le téléphone, ainsi que le certificat, sans quoi ca ne marchera pas. Un petit test quand même pour voir si tout va bien, entrer cette adresse :

Code:
https://ip_de_votre_serveur/Microsoft-Server-ActiveSync

Normalement une fenetre devrait s'ouvir, et vous demander login et mdp.

Ensuite, le certificat :

Tout d'abord copier le fichier server.crt de votre serveur sur le pc qui utilise activeSync.
Double cliquer sur le fichier, et installer le certificat.
Votre pc est maintenant certifié pour utiliser votre serveur.
Par contre votre téléphone non. Il faut faire une manipulation plutôt fastidieuse :

Retourner dans votre certificat (internet explorer, outils, options internet, contenu, certificat...)
Il se peut que votre certificat se trouve dans l'onglet "Autorités principales de confiance". Il porte le nom de votre domaine.
Double cliquer ensuite sur votre certificat, et allez dans l'onglet "Détails".
Prendre la valeur contenue dans le champ "Empreinte numérique", et gardez la de coté.
Fermer tout, et créer un fichier dans un dossier qui s'appellera "_setup.xml"

Vous allez le former comme tel :

Code:
<wap-provisioningdoc>
<characteristic type="CertificateStore">
<characteristic type="ROOT">
<characteristic type="COLLER ICI L'EMPREINTE NUMERIQUE SANS LES ESPACES">
<parm name="EncodedCertificate" value="COLLER ICI LE CONTENU DU CERTIFICAT"/>
</characteristic>
</characteristic>         
</characteristic>
</wap-provisioningdoc>

Juste une chose, il faut bien entendu enlever les "-----BEGIN CERTIFICATE-----" et "-----END CERTIFICATE-----" de votre certificat, avant de le coller dans le _setup.xml.

Il ne nous reste plus qu'à faire un fichier cab :

Code:
makecab _setup.xml rootcert.cab

voilà, vous pouvez envoyer le fichier cab sur votre téléphone, et le lancer.

Maintenant il faut paramétrer le compte via ActiveSync.
Aller dans outils, ajouter un serveur.
Cocher le SSL, pour l'ip vous mettez l'adresse de votre serveur (ou l'ip).
Pour le login et mdp, ce sont les même que pour gmail (sans oublier le @gmail.com pour le login)

Voilà, si tout se passe bien, ça devrait fonctionner ! Félicitation.

J'ai eu un petit bug personnellement avec la 1.2.2RC dans le fichier mimeDecode.php, dans la méthode _parseHeaderValue, je l'ai remplacée par celle ci :

Code:
 function _parseHeaderValue($input)
{
   $input = trim($input);
   if (($pos = strpos($input, ';')) !== false) {
      $return['value'] = trim(substr($input, 0, $pos));
      $input = trim(substr($input, $pos+1));
      if (strlen($input) > 0) {
         $aTemp = explode(';', $input);
         $aTemp = array_map('trim', $aTemp);
         foreach ($aTemp as $sValue) {
            $aTempEqual = explode('=', $sValue);
            $return['other'][strtolower($aTempEqual[0])] = str_replace('"', '', $aTempEqual[1]);
         }
      }
   } else {
      $return['value'] = trim($input);
   }

   return $return;
}

Je l'ai pas vraiment optimisée, mais elle fait le travaille, j'ai téléchargé 1500 mails sans aucune erreur.

Voilà, j'espère n'avoir rien oublié, j'ai pas mis d'image, mais je le ferai s'il le faut.
Si vous voulez suivre les logs de votre serveur Z-Push, vous pouvez faire :

Code:
tail -f /var/www/z-push/debug.txt

Source :
http://forums.macrumors.com/archive/index.php/t-550006.html
http://doc.ubuntu-fr.org/lamp
http://blogs.msdn.com/windowsmobile/archive/2006/01/28/making_a_root_cert_cab_file.aspx
http://blog.julienwadin.be/107/generer-un-certificat-autosigne-pour-apache/


Dernière édition par bastok le Ven 5 Juin 2009 - 10:38, édité 5 fois

bastok
Nouveau membre
Nouveau membre

Masculin
Nombre de messages : 9
Age : 35
Localisation : Aix en Provence
Emploi/loisirs : Développeur
Appareil(s) possédé(s) : HTC Diamond
Opérateurs : SFR
Date d'inscription : 27/09/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Créer son serveur pour le Push Gmail (Linux)

Message par bastok le Jeu 4 Juin 2009 - 12:32

Je me suis trompé de section je crois, je ne sais pas comment déplacer le sujet...

bastok
Nouveau membre
Nouveau membre

Masculin
Nombre de messages : 9
Age : 35
Localisation : Aix en Provence
Emploi/loisirs : Développeur
Appareil(s) possédé(s) : HTC Diamond
Opérateurs : SFR
Date d'inscription : 27/09/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Créer son serveur pour le Push Gmail (Linux)

Message par Invité le Jeu 4 Juin 2009 - 14:11

Je l'ai mis dans les tutos, merci à toi pour ce super topic !!!
Anonymous
Invité
Invité


Revenir en haut Aller en bas

Re: [TUTO] Créer son serveur pour le Push Gmail (Linux)

Message par flofly le Jeu 4 Juin 2009 - 22:36

excellent, apres mon serveur web, dns, dhcp, ftp, et bientot mail, mon proxy squid et mon propre firewall sous iptables, je vais pouvoir creer mon serveur push mail ^^

Pour tout ceux qui n'osent pas s'investir la dedans un vieux pc de 128 mb, une distirb de debian et c'ets parti pour des heures de folies et bien sur full lignes de commande

HS : une petite video pour ceux qui s'interesse un peu au web 2.0 ou plutôt du minitel 2.0 (voir dans la videoqui est d'ailleurs vraiment interessante)
==> https://www.dailymotion.com/relevance/search/minitel+2.0
(une de ses répliques que j'ai bien aimé, "un jour tout les jeunes feeront "aptitude install skyblog")
flofly
flofly
Nouveau membre
Nouveau membre

Masculin
Nombre de messages : 22
Age : 30
Appareil(s) possédé(s) : HTC Touch Diamond
Opérateurs : Orange
Date d'inscription : 25/03/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Créer son serveur pour le Push Gmail (Linux)

Message par bastok le Ven 5 Juin 2009 - 1:19

Désolé il manque des parties, apparemment quand je modifie le post, phpbb interprete les tags <> comme des tags HTML, et fait disparaitre une partie des [code]
Je recompleterai mon post demain.

bastok
Nouveau membre
Nouveau membre

Masculin
Nombre de messages : 9
Age : 35
Localisation : Aix en Provence
Emploi/loisirs : Développeur
Appareil(s) possédé(s) : HTC Diamond
Opérateurs : SFR
Date d'inscription : 27/09/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Créer son serveur pour le Push Gmail (Linux)

Message par flofly le Ven 5 Juin 2009 - 10:07

je n'ai pas encore tester j'attends donc qu'il soit complet ^^
flofly
flofly
Nouveau membre
Nouveau membre

Masculin
Nombre de messages : 22
Age : 30
Appareil(s) possédé(s) : HTC Touch Diamond
Opérateurs : Orange
Date d'inscription : 25/03/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Créer son serveur pour le Push Gmail (Linux)

Message par bastok le Ven 5 Juin 2009 - 10:39

Voilà je l'ai remis en état, j'espère que ça tiendra.

bastok
Nouveau membre
Nouveau membre

Masculin
Nombre de messages : 9
Age : 35
Localisation : Aix en Provence
Emploi/loisirs : Développeur
Appareil(s) possédé(s) : HTC Diamond
Opérateurs : SFR
Date d'inscription : 27/09/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Créer son serveur pour le Push Gmail (Linux)

Message par kollaps le Ven 5 Juin 2009 - 11:42

Super!!! on n'est mieux servi que par soi même!!! Tchao les push gratuit qui deviennent payant!!!
Bravo Bastok :-)

kollaps
Nouveau membre
Nouveau membre

Masculin
Nombre de messages : 58
Age : 46
Appareil(s) possédé(s) : plus
Opérateurs : aucun
Date d'inscription : 25/02/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Créer son serveur pour le Push Gmail (Linux)

Message par aguichor le Jeu 2 Juil 2009 - 12:24

Bonjour,

j'ai le problème suivant au moment de tester dans mon navigateur (firefox 3.0.11 dans ubuntu 9.04 à jour), à l'aide de l'adresse suivante :

https://localhost/Microsoft-Server-ActiveSync

Code:
Échec de la connexion sécurisée
       
Une erreur est survenue pendant une connexion à localhost:443.

SSL a reçu un enregistrement qui dépasse la longueur maximale autorisée.

(Code d'erreur : ssl_error_rx_record_too_long)

j'ai regénéré un nouveau certificat au cas où, importer dans firefox, j'ai toujours le meme souci (avec localhost ou mon ip publique, meme souci)

merci de me donner un petit coup de pouce! Wink

aguichor
Nouveau membre
Nouveau membre

Masculin
Nombre de messages : 1
Age : 43
Appareil(s) possédé(s) : HTC P3300
Opérateurs : Bouygues
Date d'inscription : 02/07/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Créer son serveur pour le Push Gmail (Linux)

Message par Nounours54 le Sam 5 Sep 2009 - 19:12

Ceci m'interresse, mais mon serveur tourne sous Windows XP Pro. J'ai un serveur web APACHE donc je pense que ça pourrait le faire ?
Nounours54
Nounours54
Membre actif
Membre actif

Masculin
Nombre de messages : 256
Age : 36
Localisation : Laxou - 54
Appareil(s) possédé(s) : Samsung Galaxy S
Opérateurs : SFR - Illimytics 5 Webphone L 1h
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://www.nounours54.fr

Revenir en haut Aller en bas

Re: [TUTO] Créer son serveur pour le Push Gmail (Linux)

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum