Il est possible de mettre en place un nœud YaCy participant à la fédération globale, avec une connectivité IPv6 et HTTPS.
Qu’est-ce que YaCy ? Facile.
YaCy est un moteur de recherche que chacun peut installer pour indexer le web (pages publiques accessibles par internet), pour indexer un intranet ou pour parcourir d'autres données avec une fonction moteur de recherche. YaCy peut être utilisé de façon autonome, mais sa principale force est de pouvoir fonctionner en réseau peer-to-peer, ce qui fait que sa puissance s’accroît avec le nombre d'utilisateurs, qu'il est entièrement acentré (tous les "peers" sont égaux et il n'y a pas un organisme administratif central) et qu'il n'est pas censurable et ne stocke pas le comportement des utilisateurs.
La liberté de l'information ainsi obtenue par le biais des logiciels libres et d'un moteur de recherche distribué est également un des objectifs du projet.
Prérequis
- avoir une connexion IPv6 opérationnelle avec une adresse publique (nous utilisons ici
2001:41d0:12a:4d00:dcdc::46
) - disposer d’un nom de domaine (nous créerons ici le champ
AAAA
YaCy.Clauzel.eu
) - utiliser Debian/stretch sans systemd
- avoir
apache2
en place (nous ajouterons 2 vhosts) - avoir un certbot récent, celui de Debian/stretch est trop ancien et ne gère pas les demandes pour un hôte uniquement en IPv6 :
apt-get install certbot apt-get install certbot wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto
Mise en place du nom de domaine
- Créer l’enregistrement DNS pour le nœud; ici
YaCy.Clauzel.eu
pointe sur2001:41d0:12a:4d00:dcdc::46
Installer YaCy
Mise en place initiale :
- Lire et appliquer la documentation de YaCy ; nous utilisons ici la version 1.92 pour linux. YaCy est installé pour l’utilisateur dédié
yacy:yacy
dans le répertoire/home/yacy
- Dans l’interface web de YaCy
Mode d'utilisation et compte>avec SSL
, activer le HTTPS sur le port8443
- Dans l’interface web de YaCy
Administration du système>Paramètres d'accès au serveur>staticIP
, définissez l’adresse publique du nœud comme étantYaCy.Clauzel.eu
Indiquer à java que nous donnons la préférence à l’IPv6 :
service yacy stop
Dans /etc/init.d/yacy
, modifier JAVA_ARGS="-server -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Dsolr.directoryFactory=solr.MMapDirectoryFactory -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Stack=true"
service yacy start
À ce moment, YaCy doit tourner en mode Senior et être publiquement joignable à l’adresse http://YaCy.Clauzel.eu:8090
Créer le certificat TLS
Un simple certificat TLS suffit, mais vous pouvez vous faire plaisir avec les options :
service apache2 stop certbot-auto certonly --standalone -d YaCy.Clauzel.eu --renew-by-default --must-staple --staple-ocsp --agree-tos --uir --hsts service apache2 start
Préparation du certificat pour java
Les applications java ont ceci de casse-pied particulier qu’elles n’utilisent pas les certificats TLS au format PEM : il nous faut convertir notre certificat.
openssl pkcs12 -export -in /etc/letsencrypt/live/yacy.clauzel.eu/fullchain.pem -inkey /etc/letsencrypt/live/yacy.clauzel.eu/privkey.pem -out /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.p12 -CAfile /etc/letsencrypt/live/yacy.clauzel.eu/chain.pem -caname root -password pass:JeSuisUnMotDePasse -name yacy.clauzel.eu keytool -importkeystore -srcstorepass JeSuisUnMotDePasse -deststorepass JeSuisUnMotDePasse -destkeypass JeSuisUnMotDePasse -srckeystore /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.p12 -alias yacy.clauzel.eu -srcstoretype PKCS12 -destkeystore /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.key
Mettre en place le certificat
Nous pouvons alors placer notre joli certificat dans l’arborescence de l’application.
service yacy stop cp /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.key DATA/SETTINGS/ chown yacy:yacy DATA/SETTINGS/yacy.clauzel.eu.key chmod 400 DATA/SETTINGS/yacy.clauzel.eu.key
Configurer l’utilisation du certificat
Il reste maintenant à informer l’application de l’existence de ce certificat. Il faut vérifier/définir dans le fichier DATA/SETTINGS/yacy.conf
:
port.ssl=8443 keyStore=DATA/SETTINGS/yacy.clauzel.eu.key keyStorePassword=JeSuisUnMotDePasse server.https=true staticIP=YaCy.Clauzel.eu
Puis démarrer YaCy :
service yacy start
À ce moment, YaCy doit être publiquement joignable à l’adresse https://YaCy.Clauzel.eu:8443
Définir des redirections dans apache
Nous ajoutons alors des redirections web, qui permettrons d’accéder directement au nœud sans devoir spécifier le port.
Créer la directive /etc/apache2/sites-available/00-YaCy.conf
:
<VirtualHost *:80> Define INSTANCE yacy.clauzel.eu ServerName ${INSTANCE} RewriteEngine On RewriteRule ^(.*)$ https://${INSTANCE}:8443 [redirect=301] </VirtualHost> <VirtualHost *:443> Define INSTANCE yacy.clauzel.eu ServerName ${INSTANCE} RewriteEngine On RewriteRule ^(.*)$ https://${INSTANCE}:8443 [redirect=301] SSLEngine on SSLCertificateFile /etc/letsencrypt/live/${INSTANCE}/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/${INSTANCE}/privkey.pem </VirtualHost>
Activons cette configuration :
a2ensite 00-YaCy.conf service apache2 restart
YaCy est désormais accessible à l’adresse https://YaCy.Clauzel.eu
, et http://YaCy.Clauzel.eu
redirige le visiteur vers l’accès sécurisé
Bonne chance à tous, comme on dit « chez-moi ça marche ».
une réaction
1 De potentstream official website - 29/09/2024, 17:34
Thank you for every other excellent post. The place else could anybody get
that kind of information in such a perfect approach of writing?
I've a presentation next week, and I am on the search for such info.