424 字
2 分钟
NixOS 连接过时的企业Wi-Fi
解决部分 802.1X 企业网络配置过旧导致无法通过系统的安全检测
2026-03-06
2026-03-06

问题来源#

如果你在连接一些企业 Wi-Fi 时,看到了包含以下字眼的错误:

  • 无法激活连接:确定 AP 安全信息失败
  • CA 验证失败
  • TLS renegotiation

那么本文或许对你有用。

解决方案#

警告

这只是凑合用的手段,会增加网络被攻击的风险。如果可以,请让相关管理部门升级网络基础设施。

更改相关的 OpenSSL 配置#

/etc/nixos 下的 configuration.nix 中增加以下内容:

# 修复:无法连接不遵循规范的的WPA2企业网络
systemd.services.wpa_supplicant.environment.OPENSSL_CONF = pkgs.writeText "openssl.cnf" ''
openssl_conf = openssl_init
[openssl_init]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
Options = UnsafeLegacyRenegotiation
CipherString = Default:@SECLEVEL=0
'';

这段配置的大致行为是:

  1. 修改了 wpa_supplicantOpenSSL 配置
  2. 允许不安全的旧式 TLS renegotiation(理论上会增加被中间人利用旧协商缺陷的风险)
  3. 把 OpenSSL 的加密强度门槛降到最低兼容模式(允许弱加密配置)

然后记得重建系统(如果没有使用 flake 就删掉 --flake):

Terminal window
sudo nixos-rebuild switch --flake .

手动添加连接#

由于 nmtui 等工具会拒绝连接加密强度低的网络,需要手动增加连接。运行下面的命令:

Terminal window
nmcli connection add type wifi \
con-name "<连接名称(一般和SSID相同)>" \
ifname "*" \
ssid "<网络的SSID>" \
wifi-sec.key-mgmt wpa-eap \
802-1x.eap peap \
802-1x.identity "<账号>" \
802-1x.password "<密码>" \
802-1x.phase2-auth mschapv2
提示

请将命令中所有被 <> 包裹的部分根据实际情况做出修改。
以下命令适用于使用 WPA-EAP 与 MSCHAPV2 的网络,如果你不确定网络的配置,可以先在手机上尝试登陆。

执行后就可以在“已保存的连接”中看到了。

文章修订历史 (1 次)
查看变更记录
2026-03-07docs: NixOS 连接过时的企业Wi-Fi
06b2220
NixOS 连接过时的企业Wi-Fi
https://rinx.nz/posts/nixos-connect-legacy-enterprise-wifi/
作者
RinStel
发布于
2026-03-06
许可协议
CC BY-NC-SA 4.0