Vous êtes ici

informatique

Installer un certificat électronique sur un serveur web derrière un reverse proxy avec ubuntu, apache et certbot

Si vous avez plusieurs serveurs serveurs web sur un votre réseau local et que vous souhaitez que plusieurs d'entre eux soient accessibles depuis internet par le même port (au hasard 80 ou 443 par exemple), il est fort probable que vous fassiez appel à un reverse-proxy, qui est un moyen somme toute assez commode pour y parvenir.

De même si vous souhaitez chiffrer le contenu publié en SSL/TLS, certbot est devenu ces dernières années un incontournable, de par sa simplicité et sa gratuité.

Faire que les deux fonctionnent nécessite bien sûr une configuration particulaire, voici donc comment procéder dans le cas ou vous avez créé un sous-domaine (A record) chez votre fournisseur de noms de domaine :

  • le nom du sous domaine sera : sous.domaine.com
  • l'adresse ip du serveur sur le réseau local : 192.168.1.123
  • l'adresse ip du serveur web dans la DMZ : 192.168.1.210
  • le port de l'application sur le serveur web local : 9000
  • la racine des fichiers du serveur web local : /racine/des/fichiers/de/mon/serveurweb (généralement sous ubuntu ou debian : /var/www ou /var/www/html etc.)

Du côté de la machine qui va servir de proxy inverse (reverse proxy) accessible par internet (en DMZ) :

Créer un nouveau fichier de configuration pour apache :

touch /etc/apache2/sites-available/mon-reverse-proxy1.conf
nano /etc/apache2/sites-available/mon-reverse-proxy1.conf

Et y ajouter :

# Si ce n'est déjà fait (peu probable par défaut...)
# NameVirtualHost *:80
# Listen 80
# NameVirtualHost *:443
# Listen 443
# Surtout :

# Nécessaire pour la validation du certificat électronique
<VirtualHost *:80>
ServerName nom.de.sous.domaine
ServerAdmin mon.adresse@e.mail
    <LocationMatch "/*">
    order allow,deny
    allow from all
    Satisfy any
    ProxyPass http://192.168.1.123
    ProxyPassReverse http://192.168.1.123
    </LocationMatch>
</virtualHost>

<VirtualHost *:443>
ServerName nom.de.sous.domaine
ServerAdmin mon.adresse@e.mail
ProxyRequests Off
ProxyPreserveHost On
SSLEngine on
SSLProxyEngine On
SSLProxyCheckPeerExpire On
SSLProxyVerifyDepth     10
SSLCertificateFile      /etc/letsencrypt/live/videos.espitallier.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/videos.espitallier.net/privkey.pem
    <LocationMatch "/*">
    order allow,deny
    allow from all
    Satisfy any
    ProxyPass http://192.168.1.123:9000
    ProxyPassReverse http://192.168.1.123:9000
    </LocationMatch>
</virtualHost>

Enregistrer le fichier puis :

sudo a2ensite mon-reverse-proxy1
sudo service apache2 restart

Du côté du serveur web de l'application (192.168.1.123) pour créer le certificat :

# Si certbot n'est pas encore installé :
# sudo apt install certbot # dans le cas de debian ou ubuntu par exemple
# ensuite
sudo certbot certonly

Répondre aux questions :

  • 2: Place files in webroot directory (webroot)
  • Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): sous.domaine.com
  • Input the webroot for sous.domaine.com: (Enter 'c' to cancel): /racine/des/fichiers/de/mon/serveurweb

Automatiser le renouvellement du certificat

Création du script

sudo nano /usr/local/sbin/certbot-renew.sh

Auquel on ajoute

sudo certbot -q renew
# Par clé SSH et à supposer que le dossier 192.168.1.210:/etc/letsencrypt/live/sous.domaine.com/ a été créé
sudo scp /etc/letsencrypt/live/sous.domaine.com/fullchain.pem sudouser@192.168.1.210:/etc/letsencrypt/live/sous.domaine.com/
sudo scp /etc/letsencrypt/live/sous.domaine.com/privkey.pem sudouser@192.168.1.210:/etc/letsencrypt/live/sous.domaine.com/

On le rend exécutable

chmod +x /usr/local/sbin/certbot-renew.sh

Autoriser la copie par SSH sans mot de passe

ssh-keygen -t rsa
cat .ssh/id_rsa.pub | ssh root@192.168.1.100 'cat >> .ssh/authorized_keys'

Planification du script

sudo crontab -e
# Une fois par mois
00   5   *   1   *           /usr/local/sbin/certbot-renew.sh

L'obsolescence du PDF

Je profite de la découverte récente par des chercheurs d'une faille intrinsèque au PDF et apparemment incolmatable pour rappeler que l'on aurait dû s'occuper depuis longtemps de faire disparaître ce format destiné à l'impression - donc désuet à l'heure de la dématérialisation - car il nous rend bien trop dépendant à des logiciels coûteux comme Acrobat d'Adobe. Ce dernier, bien qu'il soit ce qui se fait de mieux pour traiter ces fichiers, n'apporte absolument rien d'intéressant par rapport à d'autres logiciels de traitement de texte ou de PAO. Sans même parler du chiffrement puisqu'il est évident qu'il est préférable d'avoir une solution polyvalente et non spécifique à un seul format de fichiers. Et il ne sera pas plus adapté non plus aux formulaires qui seront avantageusement remplacés par des applications web dédiées.

Compte tenu de l'actuelle diversité de types d'écrans l'ePub me paraît plus adapté pour la consultation de documents statiques, hors ligne et pour tout ce qui nécessite du réseau, un contenu dynamique, quoi d'autre que l'affichage responsive design d'une page web en HTML5 ?

Mais si vous pensez malgré tout que l'on ne pourra désormais plus se passer du PDF, ne serait-ce que pour les signatures électroniques, preuve de l'authenticité d'actes de plus en plus de nombreux, détrompez-vous car il existe des alternatives bien connues :

La première qui ne change pas de principe est de signer électroniquement un fichier Open Document Format (ODF), qui pour rappel est le premier format bureautique recommandé par le Référentiel Général d’Interopérabilité, que tant d'entreprises et administrations semblent avoir négligé ces dernières années (souvent par incompétence).

La seconde, radicalement différente, consiste à repenser les processus métiers et d'utiliser la chaîne de blocs par l'intermédiaire d'une application dédiée. Dernièrement une startup française s'est fait connaître dans ce domaine (cocorico) : KeeeX. Le principe est d'ajouter des métadonnées aux fichiers puis de calculer l'empreinte numérique (unicité) de ceux-ci et la stocker dans une blockchain publique, réputée inviolable. Si vous avez à faire un choix, nul doute que cette solution nécessitera plus de travail au départ mais cela vous enlèvera certainement une belle épine du pied dans les années à venir.

Drupal : forcer une version spécifique de PHP pour Drush

Si vous avez une distribution récente de GNU/Linux avec PHP 7.0, 7.1 ou 7.2, mais que - par exemple - vous souhaitez toujours utiliser Drupal 7 et que par conséquent vous devez l'administrer avec une version assez ancienne de Drush incompatible avec ces versions de PHP, vous pouvez tout de même installer vous même une version antérieure de PHP (dépots non officiels, compilation par vous-même, etc.) et forcer l'utilisation de cette version de PHP pour Drush avec la commande suivante :

export DRUSH_PHP=/usr/bin/php5.6

Si vous souhaitez que ce soit permanent, il vous suffira de rajouter cette ligne au fichier ~/.bashrc ou ~/.bash_profile

Workflow de traduction d'une page web complète avec Deepl.com

Deepl est un service web qui permet d'effectuer une traduction de texte de qualité. La version gratuite est cependant limitée en nombre de caractères et ne permet pas de traduire une page complète. Une nouvelle option a toutefois fait son apparition il y a peu : la traduction de documents. Voici comment l'utiliser de façon détournée pour contourner cette limitation :

  1. Passer la page à traduire en mode lecture (ça se fait bien sous Mozilla Firefox par exemple) ou encore l'enregistrer dans Pocket ou dans Wallabag
  2. Copier le contenu dans le presse-papier (CTRL+A, CTRL+C)
  3. Coller dans Microsoft Word ou LibreOffice Writer
  4. Enregistrer en .DOCX
  5. Téléverser le document sur Deepl.com

And voilà ! Y'a plus qu'à ouvrir le document traduit et renvoyé par Deepl pour le lire, le copier ou exporter son contenu dans un autre format, ailleurs...

Facultatif : passer l'affichage des pages dans le traitement de texte en "mode web" ...

Faire face au dilemme de l'Open Source

 

Pourquoi l'open source ? (pour votre patron)

La collaboration prend beaucoup de temps, elle est imprécise, peu fiable, difficile à gérer, elle répond rarement à des objectifs à court terme et elle est difficile à quantifier dans une analyse de rentabilisation.

Et pourtant, dans une économie numérique, les communautés collaboratives surpassent régulièrement les initiatives de type fermé ou centralisé en matière d'innovation et de compétitivité.

Voici le dilemme auquel vous et votre patron êtes confrontés lorsque vous envisagez l'Open Source:

Considérée sous l'angle de la gestion traditionnelle, la collaboration Open Source prend beaucoup de temps, est imprécise, peu fiable, difficile à gérer, répond rarement aux objectifs à court terme et est difficile à quantifier dans une analyse de rentabilisation. Et pourtant, dans une économie numérique, les collectivités collaboratives surpassent régulièrement les initiatives de type fermé ou centralisé en termes d'innovation et de concurrence.

Alors, comment justifier l'adoption d'une stratégie plus efficace, durable, ouverte et équitable?

 

C'est ce que nous allons couvrir aujourd'hui:

  • L'économie numérique,
  • La complexité,
  • La confiance,
  • L'Innovation et l'obsolescence,
  • et ce qui mène au succès ou à l'échec.
 
La première chose à reconnaître est que l'économie numérique a fondamentalement changé les règles du monde des affaires. Ignore ça à tes risques et périls.

L'absence totale de coûts de duplication et la connectivité de l'Internet ont entraîné une complexité inouïe, l'innovation rapide et, de l'autre côté, l'obsolescence rapide.
 
 

 

 

Commençons par parler de la complexité. Les systèmes logiciels sont devenus immenses, interdépendants et complexes. Il n'est plus possible pour une seule personne de comprendre toutes les subtilités d'un système. Les décideurs doivent donc assumer, déduire et faire confiance à l'information fournie par les autres. Cela signifie que l'obtention de conseils fiables est devenue un critère clé pour réussir dans l'économie numérique. Comment évaluer la fiabilité ?

 

 

 
Il s'avère que nous utilisons tous une variante de cette équation de fiabilité
  • Nous faisons confiance à des gens qui sont crédibles et qui, par le passé, ont fourni des conseils fiables.
  • Nous faisons confiance à des gens ouverts et transparents.
  • Nous avons confiance en nous-mêmes, en notre famille, en nos amis, parce qu'ils veillent sur nous et nous veillons sur eux.
  • Nous sommes méfiants à l'égard des gens qui sont susceptibles de profiter des conseils qu'ils nous donnent.

 

 
Nous faisons également confiance aux processus.
  • Nous sommes convaincus que le processus démocratique conduit à une gouvernance et une gestion équitables des ressources.
  • Nous sommes convaincus que la méthode scientifique mène à des recherches fiables sur lesquelles nous devrions agir. Je crois que les changements climatiques sont en train de se produire et qu'il faut faire quelque chose pour y remédier, malgré le temps qui m' a semblé assez semblable au cours des 40 dernières années.
  • Nous sommes convaincus que la "survie de la plus forte concurrence des économies de marché" conduit à de meilleurs produits.
Mais nous savons aussi que tous les processus peuvent être mis en jeu.

Et plus un système est complexe, plus il est facile d'embobiner les gens et de jouer avec le système.

 

 

 

 

Une partie de la raison pour laquelle l'Open Source a connu un tel succès est que ses caractéristiques mènent à la fiabilité.

Ces caractéristiques incluent:

  • La liberté,
  • L'altruisme,
  • L'ouverture,
  • La méritocratie,
  • et la "démocratie du faire".

On va les décomposer un par un.


 

L'Open Source, par définition, fournit aux récepteurs du logiciel les quatre libertés :
  1. Liberté d'utiliser le logiciel sans encombre;
  2. Liberté d'étudier le code source et de découvrir son fonctionnement;
  3. Liberté de modifier, de retoucher et d'améliorer le code;
  4. Liberté de copier et de partager avec les autres.

Le fait d'offrir un cadeau aussi précieux, qui procure une valeur beaucoup plus grande au receveur qu'au donateur, augmente la fiabilité du donateur.


 

De plus, l'ouverture et la transparence sont presque universellement appliquées à toutes les pratiques de développement et de communication Open Source.
  •     Les conversations sont publiques; tout le monde a la possibilité d' y participer et de contribuer;
  • Les décisions sont prises ouvertement;
  • Les questions et les limites sont publiées et partagées.

La transparence et l'ouverture à la critique publique réduisent les possibilités d'objectifs cachés et créent la confiance.


 

Dans une méritocratie, les meilleures idées gagnent, peu importe qui les suggère. C'est le signe d'une communauté égalitaire plutôt que hiérarchique ou dysfonctionnelle.

 

 

Avec une "démocratie du faire", la personne motivée à faire le travail décide ce qui est fait. Dans les systèmes complexes, la personne la plus proche du problème est généralement la mieux qualifiée pour prendre les décisions techniques.

 

 

Une stratégie clé pour gérer la complexité consiste à diviser les grands systèmes en sous-systèmes modulaires.

Utilisation d'architectures modulaires, connectées par des standards ouverts:

  •     Réduit la complexité du système,
  • Permet l'interopérabilité,
  • Ce qui réduit les risques techniques,
  • Et facilite l'innovation durable.

Cela signifie que vous pouvez améliorer un module sans affecter le reste de votre système. Cela facilite la maintenance, l'innovation et le suivi des dernières technologies.


 

La collaboration est au centre des récits sur l'Open Source et les standards ouverts. Par conséquent, les applications Open Source performantes fournissent généralement un support exemplaire pour les standards.


 

En comparaison, du point de vue des sociétés propriétaires dominantes, il est logique d'appliquer des tactiques de blocage des fournisseurs, ce qui rend l'intégration entre fournisseurs difficile. L'adoption des standards ouverts menace les tactiques d'enfermement des fournisseurs, et par conséquent les fournisseurs dominants sont souvent réticents et peu enthousiastes dans leur soutien des standards ouverts.

 

 

 

Dans l'économie numérique, il existe deux modèles économiques dominants qui fonctionnent bien.

Soit :

  •     Vous résolvez un problème générique en fournissant une application impressionnante tueuse de concurrence dans leur catégorie que vous distribuez au monde entier;
  • Ou vous fournissez des services personnalisés, spécialisés ou localisés, généralement en utilisant des applications de type "tueur de concurrence dans leur catégorie".


Il existe une relation symbiotique naturelle entre les deux.
Si vous résolvez un problème générique, par vous-même, vous serez surinnovant !

Il y a tout simplement plus de développeurs dans le reste du monde que vous ne pourrez jamais rassembler au sein de votre équipe.


 

Parce que le logiciel prend tellement de temps à créer et qu'il est facile à copier, il est sujet aux monopoles en excès.

Ceci est vrai pour les produits propriétaires et open source. Un produit qui devient à peine meilleur que ses concurrents attirera des utilisateurs, des développeurs et des sponsors, ce qui permettra à son tour à ce produit de croître et de s'améliorer rapidement, ce qui lui permettra d'attirer plus d'utilisateurs.

Cette rétroaction très sensible et positive conduit à ce que les projets logiciels réussis deviennent des "tueurs de concurrence dans leur catégorie ".


Cela signifie que la plupart des logiciels que vous possédez seront surinnovant d'ici un an ou deux.

Votre logiciel n'est pas un actif, mais un passif qui doit être mis à jour, entretenu et intégré à d'autres systèmes. C'est une dette technique, et vous devriez essayer d'en posséder le moins possible.

La question est : faut-il choisir propriétaire ou Open Source comme alternative?

 

 

L'ouverture démocratise la richesse et le pouvoir, ce qui est une bonne chose pour nous tous, même pour ceux qui ont la richesse et le pouvoir.

 

 

Les modèles d'affaires Open Source et proprietaires diffèrent dans la façon dont leur valeur réalisée est partagée.

 

 
Les licences Open Source sont structurées de telle sorte que plusieurs entreprises peuvent utiliser et supporter le même produit Open Source, de sorte que le marché corrige lui-même toute tendance à la fixation des prix.

En effet, les licences ouvertes démocratisent l'information.

Elle permet à chacun de partager la valeur créée par la technologie.

Au fur et à mesure que les marchés du logiciel mûrissent et que les composants deviennent des produits génériques, les pratiques collaboratives de l'Open Source deviennent le moyen le plus efficace pour créer et gérer les fonctionnalités.
La collaboration l'emporte sur la concurrence !
 

 

Par comparaison, la concurrence impitoyable entre les sociétés propriétaires donne lieu à des scénarios de "gagnant-gagnant". Beaucoup de gens parmi les plus riches du monde sont des entrepreneurs de logiciels.

Jeff Bezos qui a lancé Amazon a récemment été classé comme l'homme le plus riche au monde, en volant la place de Bill Gates qui a créé Microsoft. Mark Zuckerberg qui a lancé Facebook arrive numéro 5. Jack Dangermond d'ESRI est en baisse à 603, avec seulement 3,2 milliards de dollars à son nom.

 

 

Expliquons ça autrement, en suivant la piste de l'argent. Le modèle d'affaires propriétaire favorise les multinationales qui s'implantent sur de grands marchés comme les Etats-Unis ou l'Europe.

De nos dépenses de logiciels australiens, une petite commission est fournie au vendeur local et à l'intégrateur de systèmes, et le reste est canalisé dans la multinationale qui exploite souvent des fermes de développement dans des centres de développement bon marché.

 


 

L'Open Source en revanche favorise les entreprises locales. Comme le logiciel est gratuit, la majorité de l'argent dépensé est consacré à des services de soutien et d'intégration, qui sont généralement appliqués localement, ce qui permet de conserver l'argent et l'expertise au niveau local.

 

 

Examinons les caractéristiques qui font le succès ou non des projets.


 
Les projets Open Source sont hautement susceptibles d'être aimés à mort. Cela se produit lorsqu'un projet attire une base d'utilisateurs attrayante sans attirer des contributions équivalentes. Les bénévoles sont débordés et n'ont pas la capacité de s'acquitter des tâches essentielles qui leur incombent.

Ne surchargez pas la communauté dont vous dépendez. C'est à la fois un mauvais karma et de mauvaises affaires.

Des projets couronnés de succès ont permis d' y parvenir :
  • Dites poliment NON aux "cadeaux" de codes supplémentaires non pris en charge et aux demandes d'aide excessives;
  • Ou comment aider les utilisateurs à devenir des contributeurs, soit en nature, soit financièrement.

Si votre organisation n'est pas prête à agir en bon citoyen de la communauté et à se soucier activement de la durabilité à long terme de la communauté, alors vous aurez probablement une expérience décevante de l'Open Source. Vous prendrez des décisions à court terme et centrées sur vous-même, et vous n'obtiendrez pas le soutien dont vous avez besoin au moment où vous en avez le plus besoin. Vous vous sentirez probablement mieux avec un logiciel propriétaire. (Et la communauté serait mieux sans vous.)
 
 
Les critères de réussite des projets Open Source ont été recherchés par le professeur Charlie Schweik qui a étudié des milliers de projets. Comme vous pouvez le voir sur ce graphique, la plupart des projets sont abandonnés. Pour le reste, la plupart des projets n'attirent pas plus d'un ou deux employés et très peu d'entre eux attirent une grande communauté.

 

 

 
Vu d'un autre point de vue, vous pouvez le voir:
  • 4/5 projets sont abandonnés.
  • 1 projet sur 7 reste avec 1 ou 2 développeurs.
  • Seulement 1 sur 100 réussit à attirer 10 contributeurs principaux.

 

 

Sur ce graphique, nous avons tracé le taux de réussite des projets, et vous pouvez constater qu'en attirant les développeurs, vous augmentez considérablement vos chances de succès à long terme.


Cela montre l'impitoyable évolution Darwienne à l'œuvre. Seuls les projets de qualité exceptionnelle attirent une croissance soutenue et de grandes communautés. Ils entrent dans la catégorie "licorne magique".

 

 

Comment trouvez-vous ces projets de licorne magique ?

 

 

L'équipe de Charlie a tiré d'autres enseignements de ses recherches. Ils ont constaté que les projets couronnés de succès possèdent généralement:

  • Une vision clairement définie;
  • Une utilité claire;
  • Et des leaders qui mènent en prenant partie au développment.

Ensuite, les projets qui réussissent à attirer une équipe de taille moyenne à grande ont tendance à :

  • Fournir une granularité de tâches à échelle fine, facilitant la contribution des gens;
  • Et ont souvent attiré des appuis financiers.

 

 
 

Et pour ce qui est de QGIS, vous pouvez constater qu'il a une communauté très saine avec plus de 100 contributeurs actifs.

 

Un autre indicateur fort de la réussite d'un projet est l'achèvement du processus d'incubation d'une fondation Open Source.

  • Qualité
  • Ouverture
  • Santé de la communauté
  • Maturité
  • Durabilité

 

 

Mettons tout ça dans un discours concis pour votre patron:
 
  • L'économie numérique entraîne une grande complexité, une innovation rapide et une obsolescence rapide. Suivez le programme ou devenez obsolète.
  • La complexité croissante nous oblige à faire davantage confiance. Augmentez donc la valeur que vous accordez à la confiance, à l'ouverture et à la transparence.
  • Le logiciel est une dette technique. Il a besoin d'une maintenance importante pour rester à jour. En posséder le moins possible.
  • La collaboration et l'ouverture accélèrent l'innovation.
  • Pour le jeu à long terme, la collaboration l'emporte sur la compétition. Si vous résolvez un problème générique, par vous-même, vous serez sur surinnovant !
  • Valoriser, reconnaître, sélectionner et appliquer les pratiques de collaboration.
  • Ne soyez pas naïfs, la plupart des projets Open Source échouent. Apprenez comment choisir les gagnants.
  • L'ouverture et la collaboration conduisent à la démocratisation de la richesse et du pouvoir. Apprenez comment faire partie de la communauté - c'est logique pour les affaires.
 

 

  •     Les questions et les commentaires sont les bienvenus.
  • Le jeu de diapositives est disponible en ligne.
  • Une version antérieure de ces diapositives a été présentée à la conférence QGIS à Sydney, Australie, en novembre 2017.
  • Le texte derrière ces diapositives, de Cameron Shorter, est sous licence Creative Commons Attribution 4.0 International License.
  • Pour ceux qui me connaissent déjà, je dois dire que j'ai changé de travail. J'ai maintenant un nouveau titre énigmatique de "démystifiant technologique" au sein de l'équipe Information Experience team at Learnosity. Et bien qu'il s'agisse d'un changement par rapport à mes racines Open Source Géospatiales, je prévois de continuer à m'impliquer activement dans l'Open Source.

Pages

Subscribe to RSS - informatique