You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android设备安装EAP-TLS认证用户证书的格式检查及问题排查

FreeRADIUS EAP-TLS认证中Android证书安装问题

我正在搭建FreeRADIUS实例,用于通过EAP-TLS对多台Android终端设备进行认证。先在嵌入式Linux设备上测试,配置可正常运行。现在第一步要实现单台Android设备的认证,因此使用FreeRADIUS证书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

生成证书使用的OpenSSL版本为:

OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

但安装用户证书时遇到多个问题:

  • 安装p12文件时,logcat提示:

    W CredentialHelper: java.io.IOException: exception decrypting data - java.security.NoSuchAlgorithmException: 1.2.840.113549.1.5.12 SecretKeyFactory not available

    咨询OpenSSL邮件列表后,添加"-legacy"参数重新生成密钥。

  • 安装新的"legacy" p12文件后,使用时logcat出现:

    wpa_supplicant: TLS - SSL error: error:0900006e:PEM routines:OPENSSL_internal:NO_START_LINE

  • 尝试安装client.pem文件时,又出现错误:

    W CredentialHelper: parseCert(): java.security.cert.CertificateException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: java.lang.RuntimeException: error:0c0000be:ASN.1 encoding routines:OPENSSL_internal:WRONG_TAG

我推测问题源于crt文件格式错误,但如何获取更多细节来检查证书格式?


内容的提问来源于stack exchange,提问作者Clément

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:28:18