802.1x作为网络准入的验证,自然有很多好处。但是在实施过程中也遇到了些小问题。我在这里记录下来,希望对大家有帮助,遇到问题的时候能有个参考。
基于用户验证的方式,当用户修改了密码后,验证失败。此时应当弹框让用户输入密码,如果不弹框让用户输入密码办?
解决方法是删除系统存储的用户凭证。
无线存储位置在
HKLM\SOFTWARE\Microsoft\WlanSvc\Profiles{GUID}\MSMUserData
有线存储位置在
HKLM\SOFTWARE\Microsoft\dot3svc\Interfaces{GUID}\UserData\Profiles{GUID}\Wired

只要删除MSMUserData或者Wired就可以了。
Windows 客户端802.1x的一些设置
Windows 客户端802.1x的一些设置
如果看不到图片,请点我。
其中以01 00 00 00开头是明显的特征码。如果是PEAP加密的验证凭据,这里面存储的信息可以通过一些方法解密。
将MSMUserData转换成2进制文件dat,然后用工具解密。
PsExec.exe -s -i cmd /k crypt.exe file.dat
http://www.outerhost.com/www/upload/8t4l1q2g7549/Crypt.zip

解密后,会得到类似这样的信息。 Decrypted:AAAAAAAAAAAAAAAAAAAAAJAEAAAYAAAAAgAAAJAEAAAAAAAAaQQAACAAAAAAAAAAkAQAA
AAAAAABAAAAGQAAAAAAAAAAAAAAAAAAAAEAAABJBAAAIAAAABkAAAAAAAAAAAAAAAAAAAA1BAAAAgAAA
[...]
A== <<<>>>
在"Decrypted: " 和 " <<<>>>"之间的这些信息是base64编码过的,再找个工具解开base64编码就可以了。
对于加入域的计算,这两个键值会从HKLM下转移到HKCU下。但是删除对应的MSMUserData和Wired之后的效果是一样的。

另外,附上简单的脚本自动配置有线和无线的802.1x

sc config dot3svc start= auto
sc config wlansvc start= auto
net start dot3svc
net start wlanSvc
CERTUTIL -addstore -enterprise -f -v root "C:\yourrootcert.cer"
netsh wlan add profile filename="C:\wifiprofile.xml" user=all
netsh lan add profile filename="C:\wiredprofile.xml"

其中导入受信任的根证书可以根据实际情况来确定是否需要导入。
xml格式的配置文件需要事先从另一台手动配置好的机器上导出。
导出命令是
netsh wlan show profile #查看无线配置文件
netsh wlan export profile name=yourSSID folder=c:\folder\
netsh lan export profile folder=c:\folder\
会自动在c:\foler目录下生成xml文件。然后利用这些xml文件直接添加到目标计算机上就可以了。