我正在为使用 EAP-TLS 的多个 Android 终端设备身份验证设置一个 freeradius 实例。
我首先使用嵌入式 linux 设备对其进行测试,并且设置有效。
第一步是让它与一个安卓设备一起工作。
所以我使用 freeradius cert Makefile 生成我的证书和密钥(用于客户端、服务器和 CA)。 摘录:
######################################################################
#
# Create a new client certificate, signed by the the above server
# certificate.
#
######################################################################
client.csr client.key: client.cnf
$(OPENSSL) req -new -out client.csr -keyout client.key -config ./client.cnf
chmod g+r client.key
client.crt: ca.key ca.pem client.csr
$(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in client.csr -key $(PASSWORD_CA) -out client.crt -extensions xpclient_ext -extfile xpextensions -config ./client.cnf
client.p12: client.crt
$(OPENSSL) pkcs12 -legacy -export -in client.crt -inkey client.key -out client.p12 -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
chmod g+r client.p12
cp client.p12 $(USER_NAME).p12
client.pem: client.p12
$(OPENSSL) pkcs12 -legacy -in client.p12 -out client.pem -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
chmod g+r client.pem
cp client.pem $(USER_NAME).pem
.PHONY: client.vrfy
client.vrfy: ca.pem client.pem
c_rehash .
$(OPENSSL) verify -CApath . client.pem
我已将以下文件上传到我的 Android 设备:
生成证书的 openssl 版本是:
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
我在安装用户证书文件时遇到多个问题:
W CredentialHelper: java.io.IOException: 异常解密数据 - java.security.NoSuchAlgorithmException: 1.2.840.113549.1.5.12 SecretKeyFactory 不可用
所以我问 openssl 用户邮件列表,他们回答我必须在 openssl pkcs12 命令中使用“-legacy”选项。 我修复它,并重新生成密钥。
wpa_supplicant:TLS - SSL 错误:错误:0900006e:PEM 例程:OPENSSL_internal:NO_START_LINE
因为它来自 PEM Android 模块,我想尝试安装我的 client.pem 文件,但我收到此错误:
W CredentialHelper: parseCert(): java.security.cert.CertificateException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: java.lang.RuntimeException:错误:0c0000be:ASN.1 编码 例程:OPENSSL_internal:WRONG_TAG
我认为它来自 crt 文件中的格式错误,但我怎样才能获得更多详细信息?