Serveur dédié : configurer Transmission pour accéder au WebUI via TLS-SSL

TLS est activé sur notre serveur Apache, WordPress sert désormais ses pages avec une connexion chiffrée et Webmin se sert de notre certificat SSL.

Aujourd’hui, je cherche à lancer le client bittorent Transmission et… je tombe sur un message d’erreur qui m’empêche d’accéder son interface web : “Error code: ssl_error_rx_record_too_long”.

transmission-icon

Voici donc comment corriger le problème et afficher l’interface Web de Transmission en HTTPS. Ce tutoriel prend moins de 10 minutes à réaliser.

Erreur : “SSL received a record that exceeded the maximum permissible length”

Le premier message d’erreur sur lequel je tombe est le suivant :

Secure Connection Failed

An error occurred during a connection to www.example.com:9091. SSL received a record that exceeded the maximum permissible length. (Error code: ssl_error_rx_record_too_long)

Je commence par vérifier le fichier de configuration de Transmission et m’aperçoit assez rapidement qu’il ne sera d’aucun secours.

Une recherche sur le net m’informe qu’il faut probablement voir du côté de la configuration Apache – qui ne contenait jusqu’alors aucune référence à Transmission.

Plusieurs essais de configuration plus tard, l’erreur se transforme en erreur 409.

Erreur “409: Conflict”

Le second message auquel je me heurte est le suivant :

409: Conflict

Your request had an invalid session-id header.

To fix this, follow these steps:

When reading a response, get its X-Transmission-Session-Id header and remember it
Add the updated header to your outgoing requests
When you get this 409 error message, resend your request with the updated header

This requirement has been added to help prevent CSRF attacks.

C’est la première fois que je tombe sur une erreur 409, je suis plutôt content. Je continue donc de tester diverses directives Apache jusqu’à trouver la bonne recette pour faire fonctionner le client web UI de Transmission over SSL.

La solution : activer les modules Apache mod_proxy et proxy_http

A force de tâtonner, je me rend compte qu’il va falloir utiliser les directives d’SSLProxyEngine de mod_proxy.

Voici donc la marche à suivre, cela prend 3 minutes.

On active deux nouveaux modules Apache, mod_proxy et mod_proxy_http :

a2enmod proxy proxy_http

On édite le fichier de configuration Apache sur le domaine qui héberge Transmission et on ajoute :

# Transmission Apache redirect for SSL by skyminds.net
	# Forward all requests for /transmission to transmission-daemon
	SSLProxyEngine On
	SSLProxyCheckPeerCN on
	SSLProxyCheckPeerExpire on
	ProxyPass /transmission http://127.0.0.1:9091/transmission
	ProxyPassReverse /transmission http://127.0.0.1:9091/transmission
	#/TransmissionCode language: PHP (php)

Concrètement, les requêtes qui passent par /transmission sont redirigées vers le port 9091 (port du client Transmission) sur l’adresse IP interne du serveur. Notez que l’adresse IP interne est en http et non en https.

On valide l’enregistrement et on redémarre Apache et Transmission :

service apache2 restart
service transmission-daemon restart

Et voilà, on peut désormais accéder au WebUI de Transmission via la connexion chiffrée du domaine.

Besoin d’un partenaire fiable pour votre projet WordPress/WooCommerce ? Je mets mon expertise à votre service pour des résultats concrets.

Bénéficiez d’un accompagnement personnalisé »

Gravatar for Matt Biscay

Développeur certifié WordPress & WooCommerce chez Codeable, administrateur système et enseignant-chercheur, je mets mon expertise au service de vos projets web.

Ma priorité : des sites performants, fiables et sécurisés, pensés pour offrir la meilleure expérience utilisateur. J’accompagne chaque client avec écoute et pédagogie, pour transformer vos idées en solutions concrètes et durables.

Profitez de solutions WordPress et WooCommerce sur-mesure, pensées pour optimiser durablement votre site.
Explorez les leviers pour booster l’impact de votre site web.

Opinions