10
3月
2022
Mozilla Firefox:用 Yandex 浏览器替换 USER_AGENT
17:14

Mozilla Firefox:用 Yandex 浏览器替换 USER_AGENT

10 3月 2022 17:14

最近,如果使用的浏览器不是Yandex,有些网站将无法运行。
此外,国家服务网站 (www.gosuslugi.ru) 还推荐使用 Yandex。 但我想继续使用 Mozilla Firefox,
因为它更具可定制性,并且在扩展商店中添加了有用的内容。

显然服务器检查客户端请求的HTTP头行 用户代理,如果浏览器不是 Yandex Browser,则会显示一条消息,指出无法进行进一步的工作。
例如:Yandex 的“360”服务需要国内浏览器才能在“个人帐户”中运行。
当然,你可以安装Yandex来战斗,但是你可以将USER-AGENT更改为网站想要看到的。

另一个原因是国家服务网站 - 浏览器不同于 Yandex 浏览器 (由 YANDEX LLC 开发)和 原子 (由 Mail.Ru LLC 开发)可能由于外国 SSL 证书 Sectigo RSA 域验证安全服务器 CA 而停止工作。 请参阅本文的第二部分。

莫斯科。 3 月 9 日。 INTERFAX.RU - 数字发展部在一份声明中表示,建议国家服务用户安装支持俄罗斯通信安全证书的浏览器,例如 Yandex.Browser 和 Atom,以便更好地访问门户网站和其他网站。

由于一个站点的原因,我个人不会安装闭源 DEB 文件。

第 1 部分. 替换 USER AGENT

    1. 从官方 Firefox 扩展商店安装插件: “随机用户代理” 来自Paramtamtam 的作者。
  1. 我在其设置中添加了与 Yandex 相对应的用户代理列表(我在互联网上找到了它们) - 16 个将在一个圆圈中随机变化:

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

分机

  1. 单击“保存更改”按钮。
  2. 重新启动浏览器。
  3. 验证:我编写了一个小的 php 文件并在我的 Apache Web 服务器上运行它。

    <?php

    $user_agent = $_SERVER["HTTP_USER_AGENT"];

    echo $user_agent;

    ?>

  • 该文本保存在主目录 (~) 的文件“ua.php”中。

如果没有Web服务器,可以从命令行运行它来检查 内置 PHP 网络服务器

cd ~
php -S localhost:8000

检查:启动浏览器并转到 http://localhost:8000/ua.php

结果:
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

检查用户代理的另一种方法:
您还可以在 DuckDuckGo 搜索引擎网站上找到您的浏览器:
*我的用户代理是什么?

2022 年 11 月 28 日更新: 新版本 Yandex 浏览器 22.7.3 和 22.11.0 的用户代理系列,所有俄罗斯网站都将于 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


第 2 部分:将 State Services 网站证书安装为受信任

_第二部分可以省略。_这是一个“紧急”选项,以防颁发给国家服务网站的 SSL 证书不再有效。 在我看来,将所有国家服务证书添加到“受信任的根证书颁发机构”(CA)应该可以解决这个问题。

有两种选择:

  1. 如果服务器的 SSL 证书过期。 在这种情况下,所提供的方法不合适,因为证书将在日期之前停止工作。 但到那时(2023年1月7日),俄罗斯联邦境内将出现一个认证中心,或者下一个版本的Mozilla FireFox将开始信任Gosuslugi.ru网站(在2023年1月7日SSL证书到期日之后)。

  2. 如果为国家服务颁发证书的 Sectigo Limited 公司由于制裁而_撤销_其网站 *.gosuslugi.ru 的 SSL 证书(这不太可能): - 与 VTB 银行的情况一样,将颁发“自签名”(自签名)SSL 证书,该证书将受到 Yandex 浏览器的信任,但不会受到 Mozilla Firefox 的信任。

在FireFox浏览器中,如果存在信任问题,您可以随时将证书添加到例外中并继续工作。! 我建议另一种方法:您可以尝试将新的(由俄罗斯联邦签署的)证书添加到这台电脑上的_受信任_中。

问题分析:
我想有必要
1)以PEM格式保存来自站点的所有证书:站点的主证书和信任链中的所有证书;
2)将PEM转换为CRT
3) 添加到受信任的证书

  1. 我找到了一种将网站上的所有证书保存到 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

来源 - https://unix.stackexchange.com/questions/
致电:
openssl x509 -noout -subject -in cert1.pem

结果:
subject=CN = *.gosuslugi.ru

传送符号“|”后接下来调用 sed 字处理器,删除字母“CN”的服务字符:
| sed -nE 's/.*CN ?= ?(.*)/\1/; s/[ ,.*]/_/g; s/__/_/g; s/_-_/-/; s/^_//g;p'

在入口处:
subject=CN = *.gosuslugi.ru
输出:
gosuslugi_ru

准备好的证书名称传递给第三个片段 - 将文件从“cert1.pem”重命名为“gosusliugi.pem”的命令等。

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

---这个bash脚本的运行原理分析:
第一部分:

  • 在s_cleint选项中调用openssl程序,命令显示SSL证书
    openssl s_client -showcerts -verify 5 -connect gosuslugi.ru:443
    并将从站点 gosuslugi.ru:443 (SSL HTTPS) 输出最多 5 层的证书链到标准输出流(默认在屏幕上)。
    一块 < /dev/null 完成命令所需的(在 DONE 之前)。
    第二部分:
  • awk '/BEGIN/,/END/ 删除超出标记为 BEGIN CERTIFICATE 和 END CERTIFICATE 的边界的多余内容
    | 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'
    沿 BEGIN 边界创建多个文件,名称为 cert1.pem、cert2.pem...cert5.pem(其中 1、2、3 由变量 a++ 指定)
    每个文件都作为 x509 启动选项中第二个 openssl 命令的输入提供(使用 x509 证书)

!!如需命令键的帮助,您需要致电 openssl s_client --help или openssl x509 --help

其中片段“openssl x509”是将证书名称打印到标准输出的中间命令。
openssl x509 -noout -subject -in $cert
其中 $cert 是包含输入文件名称的变量(cert1.pem、cert2.pem...)。
团队”openssl x509 -noout -subject” 负责从 SSL 证书中提取“主题”字段 在 openssl 示例中

  1. 接下来,我创建了一个命令将 PEM 转换为 DER(CRT 扩展)。 通过命令执行:

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

! 该命令的一个小缺点是我们忽略了输出文件 cert_something.pem.crt 名称中的双扩展名“.pem.crt”;它将在将来有用 - 区分以这种方式准备的 .CRT 文件与其他证书文件。

  1. 然后,我将带有 CRT 扩展名的证书添加(复制)到“/usr/local/share/ca-certificates”目录 - 根证书颁发机构 (CA) 文件夹:

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

  2. 要在系统中注册新的 SSL 证书,您必须安装 ca-certificates 包:

    sudo apt-get install ca-certificates

  3. 使用以下命令将 CA 证书(根)添加到操作系统:

sudo update-ca-certificates

结果:

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. 考试。 政府服务在 Mozilla Firefox 中一直有效。
    无法完全检查俄罗斯 CA 链的添加,因为 Sectigo 证书的有效期至 2030 年 12 月 31 日。

回滚更改,您需要 删除 从文件夹 /usr/local/share/ca-certificates файлы сертификатов (3 шт.) имена которых указаны выше и выполнить команду update-ca-certificates

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


2022 年 3 月 11 日添加 - 几句话 自信 (由本地 CA 自行颁发并签名)证书。

自签名证书由资源所有者颁发,无法撤销
(例如,像受制裁的 VTB 银行 https://online.vtb.ru:443[外国 SSL 证书已被吊销[(https://vc.ru/flood/372667-u-vtbru-otozvali-ssl-sertifikat) 03/01/2022]。自发行的 SSL 证书没有这个缺点。
Mozilla FireFox 浏览器通常接受自行颁发的证书,无需采取任何操作。极端情况下,需要添加一次 异常证书设置

  1. 调出右侧三条纹菜单 -「设置」
  2. 在搜索栏输入 「证书」
    设置 - 证书
  3. 按下按钮 “查看证书”
  4. 在“服务器”选项卡上,单击按钮 “添加例外”
    添加例外
  5. 输入网站地址 https://esia.gosuslugi.ru 然后点击 “获取证书”
    获得证书
  6. 复选标记 “永久存储此异常”,如果我们想始终信任该网站的证书。
  7. 按下按钮 “验证安全异常”

如果证书有效,浏览器将不允许您保存安全异常,因为不需要此异常。
证书4


最后更新时间:2026年4月1日



相关出版物