我想使用iwd连接到EAP-TLS访问点,但是这失败了,因为它显然无法打开我的客户端密钥:
# iwctl
[iwd]# station wlan0 connect foo
Not configurediwd说:
src/network.c:network_connect()
src/network.c:network_connect_8021x()
Failed to load /var/lib/wireless/skybert.pem我的内核是最新的稳定内核,我启用了CONFIG_PKCS8_PRIVATE_KEY_PARSER:
# uname -r
5.2.1
# lsmod | grep pkcs8_key_parser
pkcs8_key_parser 16384 0# /usr/libexec/iwd --version
0.18
# export IWD_TLS_DEBUG=1
# /usr/libexec/iwd -d
[..]
src/network.c:network_connect()
src/network.c:network_connect_8021x()
Failed to load /var/lib/wireless/skybert.pem[Security]
EAP-Method=TLS
EAP-TLS-ClientCert=/var/lib/wirelss/skybert.pem
EAP-TLS-ClientKey=/var/lib/wireless/skybert.des3.key
EAP-TLS-ClientKeyPassphrase=youwish
EAP-Identity=skybert相应的、工作的、wpa_supplicant块是:
network={
ssid="foo"
key_mgmt=WPA-EAP
proto=WPA2
eap=TLS
identity="skybert"
client_cert="/var/lib/wireless/skybert.pem"
private_key="/var/lib/wireless/skybert.des3.key"
private_key_passwd="youwish"
}❯ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster据我所知,无法加载证书的是ell/ell/pem.c (从iwd/src/eap-tls-common.c调用),但仅此而已。如果路径存在或不存在,则错误消息是相同的。
任何帮助都将不胜感激。
发布于 2019-08-28 10:26:16
来自文件
pem.c,第321行根据我对C语言的有限理解,我只能从评论中推断:
/** * l_pem_load_private_key * @filename:要加载*@l_pem_load_private_key文件的路径字符串:未加密的私钥加密密码或NULL * @ encrypted :如果非空*加载PEM编码的RSA私钥文件,则接收是否加密的指示。如果它是一个*加密的私钥,并且@passphrase为非空,则该文件将被解密。如果没有加密,@passphrase就会被忽略。@encrypted *存储文件是否已加密的信息,无论是在*成功的情况下还是在返回NULL时出现错误。这可以用于*检查是否需要密码,而不需要事先的信息。**返回:使用l_key函数释放的l_key_free*对象*或NULL。**/
加载PEM编码的RSA私钥文件。
从2017年的NIST:三重DES在2017年被NIST否决.来看,这很可能是原因所在。
https://unix.stackexchange.com/questions/531008
复制相似问题