Publié le

Créer des domaines depuis Virtualmin

Créer un nouveau domaine est maintenant très facile. La version que j’utilise est ancienne, ce n’est pas la version #ANNEE#. Faites comme sur l’image. Attention, si vous avez mis des restrictions sur les mots de passe avec mysql_secure_installation, vous devez respecter ces restrictions sinon vous aurez une erreur.

Créer un domaine depuis Virtualmin

Si vous être pressé d’aller voir le résultat, vous aurez le message d’erreur suivant :Forbidden
You don’t have permission to access / on this server.
Apache/2.4.18 (Ubuntu) Server at web-presence.ch Port 80C’est bêtement que vous n’avez rien dans votre dossier public_html. Si vous mettez un fichier index.html Il va s’afficher. À ce stade, vous devez encore autoriser votre domaine à exécuter les fichier php. Si vous ne le faites pas le fichier php ne sera pas exécuté, mais sera téléchargé. Pour cela ajouter les lignes suivantes dans votre fichier etc/apache2/sites-available/votre_domaine.conf

#Mettez le bout de script après la ligne suivante:
#FCGIWrapper /home/web-presence/fcgi-bin/php7.0.fcgi .php7.0
php_admin_flag engine on
php_admin_flag engine on
On redémarre apache ...
/etc/init.d/apache2 restart
C'est terminé, votre domaine devrait normalement être maintenant fonctionnel.
Si vous avez un problème avec les DNS, c'est peut-être que vous n'autorisez pas BIND DNS Server à écouter au bon endroit.
La façon la plu simple et de l'autoriser a écouter partout de la façon suivante:
etc/bind/named.conf.options
listen-on {
 any;
};
Publié le

Installation Serveur Ubuntu 16.04

Erreur possible

Avant d’aller plus loin et pour être sûr que vous allez le lire, il faut dire que Virtualmin n’est pas disponible pour toutes les versions d’Ubuntu. En cas d’incompatibilité, vous aurez le message suivant:

Virtualimin : Failed to detect operating system

Allez voir dans le fichier etc/issue. Il doit avoir contenir votre OS par exemple: Ubuntu 16.04 LTS. Si ce n’est pas le cas, c’est peut-être que virtualmin n’est pas encore compatible avec votre version.

Si vous activez mysql_secure_installation


Dans le shell ci-dessous, il vous est demandé si vous désirez utiliser le script mysql_secure_installation. Si vous répondez oui vous avez certaine contrainte sur les mots de passes. Pour plus d’infos allez lire mon article.

mysql_secure_installation a des incidences sur le choix de votre mot de passe. Si vous l’activez, un mauvais mot de passe va générer des erreurs.

Niveaux de sécurité et directives pour les mots des de passes.

LOW: Longueur de plus de 7 caractères.
MEDIUM: Longueur de plus de 7 caractères, avoir des majuscules et minuscules et caractères spéciaux.
STRONG : Longueur de plus de 7 caractères, avoir des majuscules et minuscules et caractères spéciaux et ne doit pas être dans un fichier de dictionnaire s’il a été défini.

Installation Mysql / Phpmyadmin / Vitrualmin sur Ubuntu 16.04

Je vous donne ci-dessous toutes les commandes a effectuer pour installer les bases d’un serveur web

Installation Ubuntu 16.04 script shell
######### INSTALL Apache et modules php 7 #########
sudo apt-get update 
sudo apt-get upgrade 
sudo apt-get install apache2
service apache2 restart

### Voir la liste des modules php7 disponible -> sudo apt-cache search php7-* 
### On installe maintenant les module que l'on a besoin
sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi  php7.0-mcrypt php7.0-mbstring libapache2-mod-php7.0

######### Install mysql #########  
sudo apt-get install mysql-server
sudo mysql_secure_installation

######### Install Phpmyadmin #########
sudo apt-get install phpmyadmin 
/etc/init.d/apache2 restart 
service mysql restart 

######### Install virtualmin #########
mkdir /virtualmin
cd /virtualmin
wget http://software.virtualmin.com/gpl/scripts/install.sh
chmod +x install.sh
sh install.sh


sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-enabled/phpmyadmin.conf
sudo a2dismod mpm_event && sudo a2enmod mpm_prefork && sudo a2enmod php7.0
sudo apt-get install php libapache2-mod-php

sudo a2enmod rewrite

/etc/init.d/apache2 restart

Actuellement, phpmyadmin ne devrait pas s’exécuter mais afficher le code php. Pour qu’il s’exécute, allez modifier le fichier etc/apache2/apache2.conf et ajouter les lignes suivantes après le texte en commentaire.

# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.

SetHandler application/x-httpd-php

ServerSignature Off
ServerTokens Prod

A cette étape, je redémarre la machine pour être certain que tout a bien été prix en compte.

reboot

Vous pouvez maintenant vous connecter sur phpmyadmin à l’adresse suivante: Http://votre_ip/phpmyadmin.
Connectez-vous ensuite sur Webmin à l’adresse http://votre_ip:10000/ et terminer l’installation.


Fin de l’installation de virtualmin

Installation et activation de modules utiles

Vous pouvez maintenant installer les modules dont vous avez besoin. Pour ma part j’installe toujours la liste suivant. Reportez-vous à mon pour plus d’infos sur ce sujet.

sudo apt-get install zip
sudo apt-get install rar
# Optimisation d'images
apt-get install jpegoptim
apt-get install optipng

sudo a2enmod headers
sudo a2enmod expires
sudo /etc/init.d/apache2 restart

Configurer upload_max_filesize

Si vous utiliser l’upload d’images, vous serez peut-être amenez à augmenter la taille maximale des fichier téléchargeable. Par défaut elle est de 2MB. Pour ce faire modifier votre php.ini de la sorte et rdémarrer apache (/etc/init.d/apache2 restart):etc/php/7.0/apache2/php.iniupload_max_filesize = 5M
max_file_uploads = 40

Pour savoir ou se trouve votre php.ini, afficher phpinfo(); et regarder la variable: Loaded Configuration File

Publié le

Commandes de base linux

Liste de commandes de base pour l’administration et l’utilisation d’un serveur linux. Je regroupe ici toutes les commandes que j’utilise très régulièrement et dont je veux être certain de la syntaxe avant de les exécuter.

Affichage des fichiers et dossiers

cd ..Monte dans le rep parent
cd /home/web-presenceAller dans un rep chemin depuis la racine
cd public_css/imgAller dans un rep chemin depuis le rep courant
lsLister le contenu du répertoire courant
ls -1 |wc -lCompte de nombre de fichiers ou dossiers du rep.

Taille des fichiers et dossiers (Disk Usage)

du –max-depth=1Affiche la taille des dossiers du rep. courant.
du –max-depth=1 | sort -nAffiche la taille des dossiers du rep courant trié par taille
du |sort -n Affiche la taille des dossiers du rep courant et des enfants trié par taille
du |sort -n Même chose mais du plus grand au plus petit

Gestion des fichiers et dossiers

m log.txtSupprime le fichier (Pas de confirmation)
mkdirCréer un dossier
rm -rf *Supprimer tous le contenu du répertoire courant (Pas de confirmation)
rmdir logSupprimer le répertoire
rm -rf var/generation/Supprime le dossier var/generation
find . -name « sess_a* » -exec rm {} \;Supprime tous les fichiers ayant un nom commençant par sess_s dans le dossier courant. Utile si le dossier est trop long et que si rm -rf retourne « bash: /bin/rm: Argument list too long »
rm -rf var/generation/*Supprime le contenu du dossier var/generation
chown -R www-data:www-data *Change le user et le group du rep. courant et des enfants
chown -h www-data:www-data enChange le user et le group d’un lien symbolique. dans notre cas le dossier ‘en’
chmod -R 755 /home/web-presence/public _html/cssChange les droits récursivement dans les dossiers.

Administration

rebootReboot le serveur
/etc/init.d/mysql restart
/etc/init.d/apache2 restart
/etc/init.d/bind9 restart
Redémarre des processus
topConsommation des processus
ssh root@nsxxx.ovh.netConnexion en root à un serveur.

Backup, bases de données et transferts

tar -cvf web-presence.tar /home/web-presence/Backuper un dossier et son contenu et en faire un fichier .tar
tar -xvf web-presence.tarDécompresser un fichier .tar
scp dump_databse.sql root@ksxxx.kimsufi.com:/home/backup/Copie un fichier du répertoire courant sur un autre serveur dans le fichier home/backup/
wget http://test.com/test.shTélécharge un fichier dans le répertoire courant.
gzip test.tar Compresser fichier en .gz
zip -r log_file.log.zip laravel.log Compresser fichier en .zip
zip -r logs_folder.zip logs/Compresser répertoire en .zip
gzip -d archive.gz
unzip archive.zip
Decompresser des fichier zip ou .gz
mysqldump -uroot -pPassworRoot –default-character-set=utf8 ma_database > ma_database.sql Faire un dump d’une base de données
mysql -uroot -pPassworRoot ma_database < ma_database.sql Monter une base de données

Recherche

find -mmin -10
find /home/web-presence -mmin -10
Affiche les fichiers modifiés il y a moins de 10 minutes dans le rep. courant et sous-rep.
locate .css

Recherche les fichiers css sous le dossier courant. Nécessite l’installation:
sudo apt-get install mlocate
sudo updatedb
Publié le

Problème de lecture de vidéos sur android

J’ai dernièrement été confronté au problème suivant, les vidéos mp4 étaient lu sur les desktop mais pas sur les mobiles Android et autres malgré que le html ne pouvait être faux et que si je mettais les vidéos sur un autre serveur, ça fonctionnait…

<video width="100%"  controls>
<source src="http://..../video.mp4" type='video/mp4'>
<source src="http://..../video.ogg" type="video/ogg">
<source src="http://..../video.ogg" type="video/webm">
</video>

Après de nombreuses tentative comme mettre à jours avconv et ffmpeg car les vidéos étaient convertient sur le server, j’ai fait comme proposé sur de nombreux sites modifié le fichier htacces en ajoutant les lignes suivantes mais sans succès:

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm

Mais ca ne marchait pas. J’ai ensuite contrôlé les fichier que je recevait et j’ai vu que mes vidéos étaient compressé en GZIP. Il m’a ensuit suffit de modifier le .htaccess de la façon suivante pour que les vidéos ne soient pas transmisent compressées et qu’elles se chargent sur les devices mobiles:

SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|mp4|ogg|webm)$ no-gzip dont-vary

En espérant que ca puisse faire gagner du temps à quelqu’un…

Publié le

Améliorer les résultats sur la recherche locale

Geolocaliser correctement votre site est dans certains cas le facteur le plus important pour rendre un site internet utile et drainer du trafic physique dans votre établissement. De plus en plus de commerces (restaurants, menuisiers, magasins) ont une présence sur internet et bien souvent pour eux, elle a comme but de faire venir les visiteurs. Avoir une approche cohérente de SEO dans ces cas est de cibler un public régional. Trop souvent les propriétaires veulent le plus de trafic possible quand en réalité, il est plus important d’avoir un bon trafic ou plus précisément dit, un bon taux de conversion.

Comme toujours, lorsqu’il s’agit d’être plus visible et plus pertinent sur les moteurs de recherche, un double travail doit être effectué. 

Les facteurs dans le site: Comment rendre votre site plus facilement compréhensible par les robots afin qu’ils apportent des résultats plus pertinent aux utilisateurs et in fine vous amène du trafic de qualité. 

Les facteurs externes: Comme toujours sur internet, les lient et informations transmises par d’autres sites permettent de rassurer Google et être le facteur de boost décisif.

L’extension du nom de domaine

Si vous cibler un pays spécifique comme dans mon cas la Suisse, utiliser un nom de domaine avec l’extension correspondante est un grand avantage (.ch, .fr, .ma). Elle permet de définir clairement la zone géographique du public cible et est un facteur clé de la pertinence des résultats dans les classements des moteurs de recherche.

Renseigner Google My Business

La façon la plus simple, la plus rapide et indispensable pour améliorer son référencement local est bien évidemment de renseigner les informations de votre entreprise sur Google My Business. Si ce n’est pas encore fait, c’est quelque chose à faire immédiatement. Ces informations sont dans certaines recherches les premières visibles en haut des moteurs de recherche comme le montre l’image ci-dessous.

Adresse de contact sur le site

N’oublier pas lorsque vous ciblez un public physique de préciser toutes les informations nécessaires pour vous contacter et ne vous privez pas de mettre l’adresse exacte, numéro de tel, et même une carte ou plan d’accès google maps. Assurez-vous que votre adresse soit la même partout afin de montrer une cohérence. Il est facile d’oublier de mettre à jour l’une ou l’autre des infos lors de modifications.

Utiliser les données structurées

Les informations fournies par les données structurées sont de plus en plus respectées par les moteurs. Si elles sont en adéquation avec les résultats de leurs algorithmes, elles sont considérées comme fiables et utilisées par eux. Dans le cas de la recherche locale, les types les plus pertinents sont LocalBusiness et Restaurant. 
Le site de référence est schema.org mais google met à disposition un outil d’aide au markage qui peut s’avérer très utile pour générer un bon squelette.

<script type="application/ld+json">
{
  "@context" : "http://schema.org",
  "@type" : "LocalBusiness",
  // "@type" : "Restaurant",
  "name" : "....",
  "telephone" : "....",
  "address" : {
    "@type" : "PostalAddress",
    "streetAddress" : "....",
    "addressLocality" : "...."
  }
}
</script>

Contenu du site

Le contenu du site devrait au maximum corroborer votre présence locale. Parler de la région, utiliser des synonymes, mais sans excès afin que le texte ne soit pas indigeste aux lecteurs et considéré comme du spam par Google. En plus d’explication sur la région, les cartes de vin des restaurants par exemple sont une mine d’or en terme de nom de village de la région et donnent vraiment une identité locale au site dans son ensemble. En plus de rassurer les clients, les pages de références peuvent également aller dans ce sens.
Comme toujours, les titres, meta description, nom des images sont à prendre en considération.

Backlinks

Comme toujours les backlinks sont d’une importance capitale. Il est donc utile d’avoir un maximum de liens retours de bonne qualité. Pour savoir si un lien est de bonne qualité, il suffit parfois de se poser la question: Une personne va-t-elle cliquer sur le lien et être contente d’arriver sur mon site. Il faut donc qu’il soit dédié aux clients et non aux moteurs de recherche. L’idéal et d’avoir dans la page d’un partenaire ou d’un client régional un petit texte descriptif parlant du site avec un lien retour dans le texte. Ce n’est pas toujours facile à obtenir, mais c’est réalisable et ça peut faire une grande différence.

Les annuaires de mauvaise qualité sont un piège à éviter. Trop utilisé par le passé, ils peuvent maintenant nuire a votre référencement. MAIS, les annuaires reconnus comme les annuaires de téléphonique en ligne officiels ou des annuaire spécialisé et les associations dans un domaine peuvent être très positif.

Pour finir, les liens provenant d’organisme officiel comme les mairies sont de liens reconnus de qualité par les moteurs et peuvent avoir un impact significatif.

Recommandations

Google met en avant les résultat avec des commentaires nombreux et positifs. Il est donc important d’inviter les clients à laisser une petite évaluation et dans le cas de travail de proximité relativement facile a encourager.

Images et vidéos – geotagging

Une astuce assez efficace et peu utilisée pour donner un côté local à votre site est d’utiliser des geotags sur vos images ou vidéos. Les géo tags sont des marqueurs qui signalent où a été prise la photo en stockant les coordonnées GPS. Ils permettent une fois de plus d’ajouter une cohérence et une pertinence à vos informations de localisation.

Affichage des geotags sous Windows

Conclusion

Cohérence et constance: lorsque vous avez votre adresse à plusieurs endroits vous devez vous assurer qu’elle soit la même partout. Que google my business, vos données structurée, votre page contact, … retournent les mêmes informations.

Les recherches locales ne sont pas nouvelles, mais sont depuis quelque temps un mouvement de fond principalement sur Google qui ne semble pas prêt de diminuer. Comme les résultats sont souvent plus pertinent pour les utilisateurs, ils amènent un trafic d’excellente qualité avec un très bon taux de conversion. Le seul problème est dans le cas de services dématérialisés, car sur certaines requêtes, les moteurs de recherches ne tiennent pas ou peu compte de la localisation.

Dans le cas de services ou de magasins, vous devez également définir votre rayon d’action et tenter d’être visible dans cette zone géographique. À vous de voir si vous avez un intérêt à vous positionner sur une zone étendue ou travailler sur de l’hyper localisation comme une ville ou une agglomération. 

Pour conclure, une fois de plus de nombreux autres facteurs entre en considération comme la vitesse de chargement du site, l’ancienneté, le fait qu’il soit adapté aux mobiles… Ces recettes ne sont pas la panacée, mais un très bon début qui a terme va porter ses fruits.

Je profite de cette article pour faire un lien sur le site d’une connaissance bien-acheter.com qui désire faire des tests seo dans le domaine des conseil d’achat. Il voudrait voir les possibilités d’affiliation pour des sites qui ne font que du référencement naturel. Ce lien lui permettra peut-être un peu plus de visibilité.

Publié le

Compression d’image avec jpegoptim et optipng

Lors de l’amélioration de la vitesse de chargement de vos pages afin d’améliorer l’UX pour réduire le taux de rebonds et satisfaire plus aux directives de Google, vous serez vite confronté au fait d’avoir des images trop lourdes qu’il est difficile de réduire sans en réduire la qualité. Pour arriver à cela aussi appelé lossless, des librairies sont extrêmement utiles, efficaces et rapide à mettre en œuvre. 
Les librairies optipng et jpegoptim permettent d’atteindre les taux de compression définis par Google Page Speed et donc de valider cette partie de leur test.

Jpegoptim

Jpegoptim comme son nom l’indique permet d’optimiser des fichier jpeg selon un taux de compression définie ou sans perte. Un des grands avantages de cette librairie est qu’elle est extrêmement rapide.

Installation de JpegOptiom sur Ubuntu

sudo apt-get update apt-get install jpegoptim

Exécution de jpegoptim

Je vous montre ci-dessous comment exécuter jpegotim de différentes façon afin d’avoir un aperçu global. Il est parfois utile de compresser par lot et parfois par fichier.

Exécuter jpegotim en ligne de commande
ParamètreUtilisation
–strip-allEnlève tous les marquer de l’image (nom du programme utilisé,…), à utiliser pour satisfaire Google
-mChoix de la qualité à avoir entre 0 et 100. Si vous mettez ce paramètre, la compression ne sera plus sans perte ou lossless.
-pPréserve les différentes informations de date
-PPréserve les permissions de l’image originale.

jpegotim change le proriétaire du fichier
Les version précédentes à la version 1.4.2 ne permettent pas de garder les permissions (owner/group) ce qui a pour effet que, si vous exécuter le script depuis une cron, le propriétaire peut changer et rendre l’image inaccessible pour l’utilisateur.
Pour voir votre version exécuter simplement: #jpegotim –version

Exécuter en ligne de commande

La ligne ci-dessous compresse toutes les images de type JPG qui se trouvent dans mon dossier /img/

find /home/web-presence/public_html/img/ -type f -name '*.jpg' -exec jpegoptim -m80 -P --strip-all {} \;

Exécuter depuis une cron php

Pour compresser toutes les images de type JPG modifiée il y a moins de 60 minutes qui se trouvent dans le dossier img/cache, exécuter un fichier php contenant les commandes suivantes :

find /home/web-presence/public_html/img/cache/ -type f -name '*.jpg' -cmin -60 -exec jpegoptim -m75 -P --strip-all {} 

Compresser les jpeg depuis php

Pour compresser une image de type JPG depuis un script php exécuter la commande ci-dessous:

exec("exec jpegoptim -m80  -P --strip-all /chemin_de_l_image/nom_du_fichier.jpg");

Optipng

Vous l’aurez bien sur compris, optipng est lui conçu pour compresser des images png. Plus lent que pour les jpegs, il est néanmoins très utile et selon les réglages pas trop lent.

Installation de Optipng sur Ubuntu

sudo apt-get update
apt-get install optipng

Paramètres principaux

Paramètre Utilisation
-strip all Enleve toutes les meta données de l’image. Elles sont inutiles et prennent de la place.
-o Choix du niveau d’optimisation entre 0 et 7. La valeur par défaut est 2. Plus le niveau de compression est élevé, plus la vitesse d’exécution sera lente.
-preserve Tente de préserver les attributs du fichier

Exécuter Optipng

Les principes sont les mêmes que pour Jpegoptim. Je donne ici 2 exemple, le premier avec une recherche de fichier et le second en lui transmettant le nom du fichier. Je vous incite à regarder plus haut pour plus d’exemples.

optipng -o4 -strip all mon_image.png
find /home/web-presence/public_html/img/ -type f -name '*.png' -exec optipng -o4  {} \;

Publié le

Comment passer au protocole HTTP2

Bien que le ptotocole HTTP2 soit encore en mode expérimental, je l’utilise sur de nombreux site sans le moindre problème. Il permet de réduire considérablement les temps de chargement comme le montre les waterfall tout en bas de la page. La seule limitation est qu’il faut avoir son site en HTTPS. Je vais vous montrer ci-dessous comment l’installer et l’activer.

HTTP/2 ne fonctionne qu’avec des sites tournant en HTTPS

Installer et activer HTTP2

Installer HTTP2 est simplissime. Pour se faire suivez les instructions ci-dessous.

sudo a2enmod http2

Si vous le message d’erreur suivant c’est que vous ne l’avez pas installé et poursuivez. Si vous n’avez pas d’erreur allez directement à la section configuration.

ERROR: Module http2 does not exist!

Installation

Pour passez à l’installation proprement dite, exécutez les commandes suivantes:

sudo add-apt-repository -y ppa:ondrej/apache2
sudo apt-key update
sudo apt-get update
# Répondez non à la question pour savoir s'il faut écraser la config
sudo apt-get --only-upgrade install apache2 -y 
sudo a2enmod http2
/etc/init.d/apache2 restart

Activez http2 pour votre domaine

Pour activer le protocole sur votre domaine, effectuez la modification suivante et redémarrer.

# Fichier: etc/apache2/site-enabled/votedomaine.conf
#SSLCertificateChainFile ....
Protocols h2 http/1.1
#SuexecUserGroup "#1005" "#1005"
/etc/init.d/apache2 restart

Contrôle

Pour contrôler si les changements ont été pris en compte, le plus simple est de regarder avec l’outil de développement chrome (F12) quel est le protocole utilisé. Attention, en fonction de vos directives d’expiration vous devez cliquer sur CTRL + F5

Détection du protocole utilisé avec Chrome Developer Tools

Temps de chargement HTTP 1.1 versus HTTP2

Les graphiques ci-dessous sont de comparatif de waterfall de chargement entre la version 1.1 et 2 de HTTP. Ils permettent de voir très clairement les avantages en terme de temps que la nouvelle version apporte.

Temps de chargement http versus http2 sur GTmetrix.com

Publié le

Comment migrer son site en HTTPS

Passez son site en HTTPS à plusieurs avantages non-négligeables. Il donne une image de qualité aux visiteurs, il accroît la sécurité ce qui est très utile si vous transmettez des données sensibles comme des mots de passe ou information de paiement, il est quelque chose d’officiellement positif pour Google et permet d’utiliser la technologie HTTP2 qui réduit les temps de chargement.

Dans ce tuto, je vais vous expliquez comment le mettre en place sans rien oublier. Dans cet exemple, j’utilise une machine Ubuntu 16.04 installé comme expliqué ici et avec un achat de certificat chez Gandi.net.

Générer la clé SSL sur le serveur et valider les infos

Commençons par générer les fichiers requis sur notre serveur. Effectuez la commande suivante et répondez aux questions posées.

openssl req -nodes -newkey rsa:2048 -sha256 -keyout mon_domaine.key -out mon_domaine.csr
Génération des fichiers

Mettez l’url de votre site dans le champs Common Name

Cette commande a crée 2 fichiers : la clé publique en .csr et la clé privée en .key que nous devons garder et qu’il faudra utiliser. Lors de l’achat de sur Gandi.net, il faut transmettre la clé .CSR. Maintenant, il faut poursuivre l’achat et attendre que le registrar confirme l’activation du certificat.

Une fois le certificat activé, il faut maintenant copier ou déplacer les clés générées sur le serveur et télécharger la clé intermédiaire (.pem) depuis votre interface d’administration chez votre registrar. J’utilise les commandes suivantes pour les déplacer.

cp mon_domaine.csr /etc/ssl/certs/mon_domaine.csr 
cp mon_domaine.key /etc/ssl/private/mon_domaine.key

Vous devez actuellement avoir les fichier suivants sur votre serveur:

/etc/ssl/certs/mon_domaine.crt clé fournie par le registrar
/etc/ssl/certs/mon_domaine.csr la clé publique
/etc/ssl/private/mon_domaine.key la clé privée
/etc/ssl/certs/GandiStandardSSLCA2.pem le certificat intermédiaire pour rester compatible avec les vieux navigateurs fournie par le registrar

Ajouter le certificat SSL

Une fois tous les fichiers nécessaires en place, je modifie mon fichier etc\apache2\sites-enabled\mon_domaine.conf de la façon suivante. Je recopie tout le contenu de VirtualHost *:80 .. /VirtualHost et le renomme en VirtualHost *:443 … /VirtualHost et j’ajoute la position de mes fichiers crt, key et pem. Pour arriver à quelque chose qui ressemble à cela:

ServerName web-presence.ch
	DocumentRoot /home/web-presence/public_html
	SSLEngine on
	SSLCertificateFile /etc/ssl/certs/web-presence.crt
	SSLCertificateKeyFile /etc/ssl/private/web-presence.key
	SSLCertificateChainFile  /etc/ssl/certs/GandiStandardSSLCA2.pem
	...

Je m’assure ensuite que le fichier etc\apache2\ports.conf contient la ligne suivante:

Listen 443

Je m’assure finalement que ssl est activé sur mon serveur et je redémarre.

sudo a2enmod ssl
/etc/init.d/apache2 restart

Votre site devrait maintenant être accessible avec les https. Pour s’assurer que tout est en ordre, vous pouvez par exemple le tester avec sslshopper. Allez voir l’article faire une redirection depuis le fichier htacces

Checklist pour passer sans erreur de HTTP en HTTPS

Assurez-vous que toutes les images et les liens sont maintenant en https.
Des outils comme ScreaminFrog permettent de faire cela très facilement.
Contrôler vos balises hreflang et canonical.
Créer une nouvelle propriété dans la Search Console de Google.
Copiez les fichiers de désaveux de liens si vous en avez.
Contrôler les fichiers sitemap
Contrôler les fichiers CSS
Modifier si nécessaire votre fichier robots.txt
Changer un maximum de backlink sur la nouvelle adresse

Publié le

Open Graph

Les balises Open Graph permettent de faire que vos pages soient des objets enrichis (rich object) afin d’en faciliter leur partage sur WhatsApp, Facebook,Twitter, Linked in, Google +,… ou sur les autres réseaux sociaux. Très facile à mettre en place, elles ont pour but et avantage de donner un aperçu succinct du contenu de la page lors de partage sur un média social.

Intérêt du balisage

Le contenu de ces balises doit avant tout être conçu pour l’utilisateur et pour avoir un bon taux de clic. Vous devez focaliser votre rédaction sur l’utilisateur. La taille de l’image par exemple dépend de l’endroit où vous allez publier. Si vous publiez sur whatsapp une image carrée est parfaire tandis que sur facebook recommande une image d’une dimension minimale idéale de 1 200 x 630 ou plus grande mais avec ce rapport

Comment implémenter Open Graph

Implémenter opengraph est très facile, il suffit d’avoir les bonnes informations et de lui transmettre correctement. Le bout de code suivant est un exemple qui est celui que j’utilise sur ce site. Il utilise donc les balises les plus courantes pour afficher des articles

<!-- A NOTER: le changement de la balise head !!!!--->
<!-- ... --->
<meta property="og:title" content="Allez plus loins avec Laravel">
<meta property="og:type" content="article">
<meta property="og:url" content="http://www.crabcake.ch/blog/laravel-snippet-utile">
<meta property="og:locale" content="fr_FR">
<meta property="og:locale:alternate" content="fr_CH">
<meta property="og:description" content="Divers snippets Laravel comme masquer la technologie, paramètre optionnel dans une route, créer des middlewares.">
<meta property="og:image" content="http://www.crabcake.ch/blog/img/14/laravel_fonction_utiles.jpg">
<meta property="og:image:width" content="800">
<meta property="og:image:height" content="800">
<meta property="og:image:type" content="image/jpeg">

Différentes balises

Les balises disponibles sont d’une part trop nombreuse pour être détaillé (music, video, image, article, book, profile, websit) ici et d’autre part suffisamment bien détaillées sur d’autre site pour ne pas avoir à les reprendre. Le site officiel ogp.me est bien sur très inintéressant, mais la section opengraph de facebook est plus accessible et met à disposition énormément d’exemples très utiles.

Erreur de Validation

Le validateur de FaceBook n’est pas souple et à besoin d’un code HTML propre. Si vous ne l’avez pas déjà fait, assurez-vous avant d’utiliser leur outil de test que votre code respecte les standards W3C. Cette petite analyse en plus d’être un quasi-indispensable, peut vous permettre de gagner beaucoup de temps…

Erreur possible pour les Suisses

la valeur donnée fr_ch pour la propriété og:locale:locale n’a pas pu être analysée en tant que type enum

Si vous êtes confronté à l’erreur ci-dessus, c’est uniquement parce que Facebbok ne reconnais pas la locale fr_CH, vous devez donc utiliser une autre valeur. La liste des locales possibles est accessible en cliquant-ici!

Publié le

Outil de désaveux de Google

Si vous subissez une attaque de Negative SEO consistant en un très grand nombre de backlinks de mauvaise qualité, la seule action que vous pouvez entreprendre afin de ne pas subire une pénalité Google est de désavouer les liens. Ca si même Google invite les webmaster à contacter les site pour enlever les liens, il est évident que vu le but de l’action est de vous nuire, ca ne servira a rien. Vous n’avez pas d’autre réaction possible que de signaler à Google que vous ne voulez pas qu’il prenne certains liens en compte. J’ai déjà eu à faire dans le passé a ce type d’action et il m’a semblé que le fait de signaler les lien m’a aider même si je pense avoir tout de même souffert un peu des conséquences de cette attaque. Vous désavouer des lines rendez-vous à l’adresse suivante disavow-links et transmettez lui un fichier csv par exemple avec les liens à supprimer.

Efficacité constatée

Après de nombreux cas de negative SEO, j’ai pu constater que cet outil est intitule ou pour moi n’a rien amené de concret. Etant donné le temps qu’il faut mettre pour tenir cela à jour et l’énervement que ça m’amène de constater ce genre de pratique, j’ai arrêté d’utiliser cet outil et je me comporte donc comme un utilisateur normal. Je pense que cette attitude en plus de ne demander aucun investissement en temps peu avoir un avantage car Google doit se méfier des personne trop réactives…