Linux 컴퓨터를 WPA2 Enterprise Wi-Fi(내가 관리함)에 연결하고 싶습니다. OpenSSL을 사용하여 생성한 인증서는 Android 및 iOS 장치 모두에서 작동하지만 wpa_supplicant에 필요한 인증서 유형이 무엇인지 알 수 없습니다.
기본적으로 ca.pem이 있고 특정 장치에 대해 다음 파일이 생성됩니다.
- 데모 파일
- 데모.csr
- 데모 키
- 데모.p12
처럼 보인다wpa_supplicant는 공용 및 개인 인증서가 포함된 파일을 사용하거나 두 개의 파일을 사용할 수 있습니다. 처음에는 두 개의 파일을 사용합니다.
- 데모 키
- .demo.pem을 실행하여 생성된
openssl pkcs12 -in demo.p12 -out demo.pem -clcerts
.
wpa_supplicant.conf
구성은 다음과 같습니다.
network={
ssid="HelloWorld"
key_mgmt=WPA-EAP
pairwise=CCMP
group=CCMP
eap=TLS
identity="[email protected]"
ca_cert="/etc/ssl/private/ca.pem"
client_cert="/etc/ssl/private/demo.pem"
private_key="/etc/ssl/private/demo.key"
private_key_passwd=...
}
다음 오류로 인해 인증이 실패합니다.
OpenSSL: tls_read_pkcs12 - PKCS#12 파일을 사용할 수 없습니다. 오류: 0D0680A8: asn1 인코딩 루틴: ASN1_CHECK_TLEN: 잘못된 레이블
제거 client_cert
하고 private_key
.pem 파일을 가리키면 오류가 동일하게 유지됩니다.
.p12를 가리키면 오류는 다음과 같습니다.
OpenSSL: tls_connection_private_key - 개인 키 오류를 로드할 수 없습니다: 00000000:lib(0):func(0):reason(0)
데비안 문서우리에게 말해주세요PEM은 .pfx에서 생성되어야 합니다. 내가 이것을 할 때 :
openssl pkcs12 -export -out demo.pfx -inkey demo.key -in demo.crt -certfile ca.crt
openssl pkcs12 -in demo.pfx -out demo.pem -clcerts
원래 오류가 다시 발생했습니다.
OpenSSL: tls_read_pkcs12 - PKCS#12 파일을 사용할 수 없습니다. 오류: 0D0680A8: asn1 인코딩 루틴: ASN1_CHECK_TLEN: 잘못된 레이블
wpa_supplicant에 대한 인증서를 정확히 어떻게 생성합니까?
답변1
귀하의 wpa_supplicant.conf
파일 에는eap=TTLS
좋다:
network={
ssid="HelloWorld"
key_mgmt=WPA-EAP
pairwise=CCMP
group=CCMP
eap=TTLS
identity="[email protected]"
ca_cert="/etc/ssl/private/ca.pem"
client_cert="/etc/ssl/private/demo.pem"
private_key="/etc/ssl/private/demo.key"
private_key_passwd=...
}
또한 구성에 따라 anonymous_identity
및 가 필요할 수도 있습니다 phase2
.
EAP-TTLS-MSChapv2 가정:
network={
ssid="HelloWorld"
key_mgmt=WPA-EAP
pairwise=CCMP
group=CCMP
eap=TTLS
identity="[email protected]"
ca_cert="/etc/ssl/private/ca.pem"
client_cert="/etc/ssl/private/demo.pem"
private_key="/etc/ssl/private/demo.key"
private_key_passwd=...
phase2="auth=MSCHAPV2"
}