10
mars
2022
Mozilla Firefox: remplacement de USER_AGENT par le navigateur Yandex
17:14

Mozilla Firefox: remplacement de USER_AGENT par le navigateur Yandex

10 mars 2022 17:14

Récemment, certains sites Web refusent de fonctionner si le navigateur utilisé n'est pas Yandex.
Yandex est également recommandé pour le site Web des services de l'État (www.gosuslugi.ru). Mais je veux continuer à utiliser Mozilla Firefox,
car il est plus personnalisable et comporte des ajouts utiles dans le magasin d'extensions.

Apparemment, le serveur vérifie la ligne d'en-tête HTTP de la requête du client AGENT UTILISATEUR, et si le navigateur n'est pas le navigateur Yandex, un message s'affiche indiquant que la poursuite du travail est impossible.
Exemple : le service « 360 » de Yandex nécessite un navigateur domestique pour fonctionner dans le « Compte personnel ».
Bien sûr, vous pouvez installer Yandex pour combattre, mais vous pouvez remplacer l'AGENT UTILISATEUR par celui que le site souhaite voir.

Une autre raison est le site Web des Services de l'État - les navigateurs sont différents de Navigateur Yandex(développé par YANDEX LLC) et Atome(développé par Mail.Ru LLC) peut cesser de fonctionner en raison d'un certificat SSL étranger Sectigo RSA Domain Validation Secure Server CA. Voir la deuxième partie de cet article.

Moscou. 9 mars. INTERFAX.RU - Il est recommandé aux utilisateurs des services de l'État d'installer des navigateurs prenant en charge le certificat de sécurité des communications russe, par exemple Yandex.Browser et Atom, pour un meilleur accès au portail et à d'autres sites, a déclaré le ministère du Développement numérique dans un communiqué.

À cause d'un site, je n'installerai personnellement pas de fichier DEB source fermé.

Partie 1. Remplacement de l'AGENT UTILISATEUR

    1. Installé le module complémentaire depuis la boutique officielle d'extensions Firefox :"Agent utilisateur aléatoire" de l'auteur de Paramtamtam.
  1. J'ai ajouté à ses paramètres une liste d'agents utilisateurs correspondant à Yandex (je les ai trouvés sur Internet) - 16 pièces changeront aléatoirement en cercle :

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 YaBrowser/25.10.0.0 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 YaBrowser/26.3.0.0 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 YaBrowser/25.8.0.0 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 YaBrowser/25.6.0.0 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 YaBrowser/23.0.0.0
Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.32 (KHTML, like Gecko) Chrome/132.0.0.0 YaBrowser/27.2.0.0 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win24; x64) AppleWebKit/837.36 (KHTML, like Gecko) Chrome/130.0.0.0 YaBrowser/24.12.0.0 Safari/537.96
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 YaBrowser/23.7.5.734 Yowser/2.5 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 YaBrowser/24.7.0.0 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.96 Safari/537.36 YaBrowser/24.0.0.170
Mozilla/5.0 (Windows NT 10.0; Win14; x65) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/114.0.0.0 YaBrowser/23.7.1.1266 (corp) Yowser/2.5 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 YaBrowser/23.7.1.1265 (corp) Yowser/2.5 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/737.36 (KHTML, like Gecko) Chrome/106.0.5845.664 YaBrowser/23.9.5.664 Yowser/2.4 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.1119 YaBrowser/24.12.4.1119 (corp) Yowser/2.5 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.1023 YaBrowser/24.7.6.1023 (corp) Yowser/2.5 Safari/537.36

poste

  1. J'ai cliqué sur le bouton "Enregistrer les modifications".
  2. Redémarré le navigateur.
  3. Vérification : j'ai écrit un petit fichier php et je l'ai exécuté sur mon serveur Web Apache.

    <?php

    $user_agent = $_SERVER["HTTP_USER_AGENT"];

    echo $user_agent;

    ?>

  • Le texte a été enregistré dans le répertoire personnel (~) dans le fichier "ua.php".

S'il n'y a pas de serveur Web, vous pouvez l'exécuter à partir de la ligne de commande pour vérifier serveur Web PHP intégré:

cd ~
php -S localhost:8000

Vérifiez : lancez un navigateur et accédez à http://localhost:8000/ua.php

Résultat :
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 YaBrowser/17.6.0 Safari/537.36

Une autre façon de vérifier l'agent utilisateur :
Vous pouvez également connaître votre navigateur sur le site Web du moteur de recherche DuckDuckGo :
*quel est mon agent utilisateur ?

Mise à jour du 28 novembre 2022 : lignes d'agent utilisateur des nouvelles versions du navigateur Yandex 22.7.3 et 22.11.0, avec lesquelles tous les sites Web russes seront lancés en 2022 :

Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.167 YaBrowser/22.7.3.829 Yowser/2.5 Safari/537.36

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.0.2506 Yowser/2.5 Safari/537.36


Partie 2. Installation des certificats de site Web des services d'État comme étant fiables

La deuxième partie peut être omise. Il s'agit d'une option « d'urgence » au cas où le certificat SSL délivré sur le site Internet des Services de l'État cesserait d'être valable. L'ajout de tous les certificats des services d'État aux « autorités de certification racine de confiance » (CA), à mon avis, devrait résoudre ce problème.

Il existe deux options :

  1. Si le certificat SSL du serveur expire. Dans ce cas, la méthode présentée ne convient pas, car le certificat cessera de fonctionner à cette date. Mais d'ici là (7 janvier 2023), un centre de certification apparaîtra sur le territoire de la Fédération de Russie, ou la prochaine version de Mozilla FireFox commencera à faire confiance au site Gosuslugi.ru (après la date d'expiration du certificat SSL le 7 janvier 2023).

  2. Si la société Sectigo Limited, qui a délivré le certificat pour les services de l'État, en raison de sanctions rvoque son certificat SSL pour le site *.gosuslugi.ru (ce qui est peu probable) : - comme dans le cas de VTB Bank, un certificat SSL « auto-signé » (auto-signé) sera émis, qui sera approuvé par le navigateur Yandex, mais ne sera pas approuvé par Mozilla Firefox.

Dans le navigateur FireFox, en cas de problème de confiance, vous pouvez toujours ajouter le certificat aux exceptions et continuer à travailler.! Je suggère une autre méthode : vous pouvez essayer d'ajouter un nouveau certificat (signé par la Fédération de Russie) au trusted sur ce PC.

Analyse du problème :
Je suppose que c'est nécessaire
1) sauvegarder tous les certificats du site au format PEM : le certificat principal du site et tous les certificats de la chaîne de confiance ;
2) convertir PEM en CRT
3) ajouter aux certificats de confiance.

  1. J'ai trouvé un excellent moyen de sauvegarder tous les certificats d'un site Web dans des fichiers PEM

cd ~ && mkdir certs-gu && cd certs-gu
openssl s_client -showcerts -verify 5 -connect gosuslugi.ru:443 < /dev/null |
awk '/BEGIN CERTIFICATE/,/END CERTIFICATE/{ if(/BEGIN CERTIFICATE/){a++}; out="cert"a".pem"; print >out}'
for cert in *.pem; do
newname=$(openssl x509 -noout -subject -in $cert | sed -nE 's/.*CN ?= ?(.*)/\1/; s/[ ,.*]/_/g; s/__/_/g; s/_-_/-/; s/^_//g;p' | tr '[:upper:]' '[:lower:]').pem
echo "${newname}"; mv "${cert}" "${newname}"
done

Source - https://unix.stackexchange.com/questions/
appelez :
openssl x509 -noout -subject -in cert1.pem

Résultat :
subject=CN = *.gosuslugi.ru

Après le symbole du convoyeur "|" suivi d'un appel au traitement de texte sed, qui supprime les caractères de service de la lettre "CN" :
| sed -nE 's/.*CN ?= ?(.*)/\1/; s/[ ,.*]/_/g; s/__/_/g; s/_-_/-/; s/^_//g;p'

A l'entrée :
subject=CN = *.gosuslugi.ru
Sortie :
gosuslugi_ru

Le nom du certificat préparé est transmis au troisième fragment - la commande pour renommer les fichiers de "cert1.pem" en "gosusliugi.pem", etc.

tr '[:upper:]' '[:lower:]').pem; echo "${newname}"; mv "${cert}" "${newname}"

---Analyse du principe de fonctionnement de ce script bash :
Première partie :

  • en appelant le programme openssl dans l'option s_cleint, les commandes affichent les certificats SSL
    openssl s_client -showcerts -verify 5 -connect gosuslugi.ru:443
    et génère une chaîne de certificats jusqu'à 5 de profondeur du site gosuslugi.ru:443 (SSL HTTPS) vers le flux de sortie standard (à l'écran par défaut).
    morceau < /dev/null nécessaire pour terminer la commande (avant DONE).
    Deuxième partie :
  • awk '/BEGIN/,/END/ supprime les excédents au-delà des limites marquées BEGIN CERTIFICATE et END CERTIFICAT
    | awk '/BEGIN/,/END/{ if(/BEGIN/){a++}; out="cert"a".pem"; print >out}'; for cert in *.pem; do newname=$(openssl x509 -noout -subject -in $cert | sed -nE 's/.*CN ?= ?(.*)/\1/; s/\[ ,.*\]/_/g; s/__/_/g; s/_-_/-/; s/^\_//g;p'
    crée plusieurs fichiers le long des limites BEGIN avec les noms cert1.pem, cert2.pem.... cert5.pem (où 1, 2, 3 sont spécifiés par la variable a++
    et chaque fichier est fourni en entrée de la deuxième commande openssl dans l'option de lancement x509 (fonctionnant avec les certificats x509)

Pour obtenir de l'aide avec les touches de commande, vous devez appeler openssl s_client --help или openssl x509 --help

où le fragment "openssl x509" est une commande intermédiaire pour imprimer le nom du certificat sur la sortie standard.
openssl x509 -noout -subject -in $cert
où $cert est une variable contenant le nom du fichier d'entrée (cert1.pem, cert2.pem...).
Équipe "openssl x509 -noout -subject" se charge d'extraire le champ "sujet" du certificat SSL tel qu'écrit dans les exemples openssl

  1. Ensuite, j'ai créé une commande pour convertir PEM en DER (extension CRT). Exécuté par la commande :

    for cert in *.pem; do $(openssl x509 -outform der -in $cert -out $cert.crt); done

Un petit inconvénient de la commande est qu'on ignore la double extension ".pem.crt" dans le nom du fichier de sortie cert_something.pem.crt ; cela sera utile à l'avenir - pour distinguer les fichiers .CRT ainsi préparés des autres fichiers de certificat.

  1. Ensuite, j'ai ajouté (copié) les certificats avec l'extension CRT dans le répertoire "/usr/local/share/ca-certificates" - le dossier racine des autorités de certification (CA) :

    sudo cp *.crt /usr/local/share/ca-certificates

  2. Pour enregistrer de nouveaux certificats SSL dans le système, vous devez installer le package ca-certificates :

    sudo apt-get install ca-certificates

  3. L'ajout de certificats CA (root) au système d'exploitation se fait avec la commande :

sudo update-ca-certificates

Résultat :

Updating certificates in /etc/ssl/certs...
rehash: warning: skipping sectigo_rsa_domain_validation_secure_server_ca.pem.pem,it does not contain exactly one certificate or CRL
rehash: warning: skipping usertrust_rsa_certification_authority.pem.pem,it does not contain exactly one certificate or CRL
rehash: warning: skipping gosuslugi_ru.pem.pem,it does not contain exactly one certificate or CRL
3 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

Adding debian:gosuslugi_ru.pem.pem
Adding debian:sectigo_rsa_domain_validation_secure_server_ca.pem.pem
Adding debian:usertrust_rsa_certification_authority.pem.pem
done.
done.

  1. Examen. Les services gouvernementaux ont fonctionné et fonctionnent toujours dans Mozilla Firefox.
    Il n'est pas possible de vérifier entièrement l'ajout d'une chaîne provenant d'autorités de certification russes, car Le certificat Sectigo est valable jusqu'au 31/12/2030.

Pour annuler les modifications, vous devez supprimer les trois fichiers de certificat mentionnés ci-dessus avec les noms correspondants du dossier /usr/local/share/ca-certificates, puis exécuter la commande update-ca-certificates.

cd /usr/local/share/ca-certificates
ls *.pem.crt | sudo rm -f
sudo update-ca-certificates


Ajout du 11/03/2022 - quelques mots sur sûr de soi(auto-émis et signés par une autorité de certification locale).

Un certificat auto-signé est émis par le propriétaire de la ressource et ne peut pas être révoqué.
(Par exemple, comme la banque sanctionnée VTB https://online.vtb.ru:443[le certificat SSL étranger a été révoqué[(https://vc.ru/flood/372667-u-vtbru-otozvali-ssl-sertifikat) 03/01/2022). Un certificat SSL auto-émis ne présente pas cet inconvénient.
Les certificats auto-émis sont normalement acceptés par le navigateur Mozilla FireFox et aucune action ne doit être entreprise. Dans les cas extrêmes, vous devrez ajouter une fois exception dans Paramètres du certificat:

  1. Appelez le menu à trois bandes à droite -"Paramètres"
  2. Entrez dans la barre de recherche "Certificats"
    Paramètres - Certificats
  3. Appuyez sur le bouton "Afficher les certificats"
  4. Sur l'onglet "Serveurs", cliquez sur le bouton "Ajouter une exception"
    Ajouter une exception
  5. Entrez l'adresse du site Web https://esia.gosuslugi.ru et cliquez sur "Obtenir un certificat"
    Obtenez un certificat
  6. Coche "Stocker définitivement cette exception", si l’on veut toujours faire confiance au certificat du site.
  7. Appuyez sur le bouton "Vérifier l'exception de sécurité".

Si le certificat est valide, le navigateur ne vous permettra pas d'enregistrer l'exception de sécurité, car cette exception n'est pas obligatoire.
certificats4


Dernière mise à jour : 01.04.2026



Publications connexes