« GnuPG Web Key Directory : partage de clés gpg par le web » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 2 : Ligne 2 :
[[category:security]]
[[category:security]]


=Côté client=
<pre>
<pre>
#$ gpg --with-wkd-hash -k me@domain1.tld
#$ gpg --with-wkd-hash -k me@domain1.tld
Ligne 22 : Ligne 23 :
<br><br>
<br><br>


=Côté serveur=
Ce wiki ne couvre que la mise a disposition de clé en WKD en direct-mode, qui nécessitera que vos clés soient accessibles à l'url <code>http://domain1.tld/.well-known/openpgpkey/hu/</code> (et réciproque avec domain2.tld).<br>
Ce wiki ne couvre que la mise a disposition de clé en WKD en direct-mode, qui nécessitera que vos clés soient accessibles à l'url <code>http://domain1.tld/.well-known/openpgpkey/hu/</code> (et réciproque avec domain2.tld).<br>
Le advanced-mode est un peu plus complexe et nécessité un certificat SSL trusted (letsencrypt par exemple) pour un sous-domaine <code>openpgpkey.domain1.tld</code> (et réciproque avec domain2.tld).<br>
Le advanced-mode est un peu plus complexe et nécessité un certificat SSL trusted (letsencrypt par exemple) pour un sous-domaine <code>openpgpkey.domain1.tld</code> (et réciproque avec domain2.tld).<br>
Ligne 28 : Ligne 30 :


Sur la racine de votre serveur web, créez le chemin de répertoire suivant : <code>.well-known/openpgpkey/hu/</code> <br>
Sur la racine de votre serveur web, créez le chemin de répertoire suivant : <code>.well-known/openpgpkey/hu/</code> <br>
Placez ensuite un fichier vide accessible à l'url <code>.well-known/openpgpkey/hu/</code>
Placez ensuite un fichier vide dans <code>.well-known/openpgpkey/policy</code>
<br><br>
<br><br>
Essayez d'accéder au fichier policy via <code>http://domain1.tld/.well-known/openpgpkey/policy</code>.<br>
Si cela fonctionne, modifiez la configuration de votre serveur afin de configurer le dossier <code>.well-known/openpgpkey/hu/</code> (nécessite les mods apache2 mod_mime et mod_headers):
<pre>
<Directory "/path/to/.well-known/openpgpkey/hu/">
    ForceType application/octet-stream
    Header always set Access-Control-Allow-Origin "*"
</Directory>
</pre>


Il ne vous reste plus qu'à exporter votre clé publique sur votre site web de manière qu'elle soit accessible à l'URL <code>https://domain.tld/.well-known/openpgpkey/hu/s8y7oh5xrdpu9psba3i5ntk64ohouhga</code> et <code>https://domain2.tld/.well-known/openpgpkey/hu/s8y7oh5xrdpu9psba3i5ntk64ohouhga</code>
Il ne vous reste plus qu'à exporter votre clé publique sur votre site web de manière qu'elle soit accessible à l'URL <code>https://domain.tld/.well-known/openpgpkey/hu/s8y7oh5xrdpu9psba3i5ntk64ohouhga</code> et <code>https://domain2.tld/.well-known/openpgpkey/hu/s8y7oh5xrdpu9psba3i5ntk64ohouhga</code>

Version du 23 mai 2021 à 18:11


Côté client

#$ gpg --with-wkd-hash -k me@domain1.tld

Devrait vous retourner quelque chose ressemblant à ça :

pub   rsa2048 2017-05-26 [SC]
      7EBA8211BFF531EE59E25CBD99FD9BFE6F9B8951
uid           [ultimate] you <me@domain1.tld>
              s8y7oh5xrdpu9psba3i5ntk64ohouhga@domain1.tld
uid           [ultimate] you2 <me@domain2.tld>
              s8y7oh5xrdpu9psba3i5ntk64ohouhga@domain2.tld
sub   rsa2048 2017-05-26 [E]
sub   rsa2048 2017-05-26 [S]
sub   rsa2048 2017-05-26 [A]

Le but est de récupérer l'ID de 32 caractères issu de l'empreinte SHA1 encodé en Z-base32 de la partie locale de l'email (avant le @). Ici l'ID est s8y7oh5xrdpu9psba3i5ntk64ohouhga (c'est le même dans les deux cas uniquement parce que les deux emails sont me@).

Côté serveur

Ce wiki ne couvre que la mise a disposition de clé en WKD en direct-mode, qui nécessitera que vos clés soient accessibles à l'url http://domain1.tld/.well-known/openpgpkey/hu/ (et réciproque avec domain2.tld).
Le advanced-mode est un peu plus complexe et nécessité un certificat SSL trusted (letsencrypt par exemple) pour un sous-domaine openpgpkey.domain1.tld (et réciproque avec domain2.tld).
Notez que pour le direct-mode, assurez-vous que le sous-domaine openpgpkey.domain1.tld n'existe pas et que votre dns ne répond pas aux wildcards. Si vous utilisez les wildcards, il faut insérer dans la zone dns un champt TXT RR vide pour le sous-domaine openpgpkey.

Sur la racine de votre serveur web, créez le chemin de répertoire suivant : .well-known/openpgpkey/hu/
Placez ensuite un fichier vide dans .well-known/openpgpkey/policy

Essayez d'accéder au fichier policy via http://domain1.tld/.well-known/openpgpkey/policy.
Si cela fonctionne, modifiez la configuration de votre serveur afin de configurer le dossier .well-known/openpgpkey/hu/ (nécessite les mods apache2 mod_mime et mod_headers):

<Directory "/path/to/.well-known/openpgpkey/hu/">
    ForceType application/octet-stream
    Header always set Access-Control-Allow-Origin "*"
</Directory>


Il ne vous reste plus qu'à exporter votre clé publique sur votre site web de manière qu'elle soit accessible à l'URL https://domain.tld/.well-known/openpgpkey/hu/s8y7oh5xrdpu9psba3i5ntk64ohouhga et https://domain2.tld/.well-known/openpgpkey/hu/s8y7oh5xrdpu9psba3i5ntk64ohouhga

Le plus simple est d'exporter votre clé sous le bon nom de fichier, puis de le transférer par exemple avec scp :

gpg --export me@domain1.tld > s8y7oh5xrdpu9psba3i5ntk64ohouhga