Active Directory as PKI
Nikita Koshikov
koshikov at gmail.com
Thu May 20 09:43:14 CEST 2010
Hello freeradius users/admins,
I'm trying to implement EAP-TLS authorization with freeradius and Active Directory Certificates Service, but I'm stuck here...
With keys/certificates, generated with freeradius makefile(/etc/raddb/certs) everything is working fine. Here is the hierarchy of keys generated by freeradius:
Ca.crt(+ca.key)
||
server.crt(+servers.key) //issuer ca.crt
||
client1.crt
client2.crt
..... //issuer server.crt
Apart from this scheme, Active Directory stores certificates in a way:
Ca.crt(key in AD and cannot used by freeradius)
||
sub_ca.crt(key in AD and cannot used by freeradius) //issuer ca.crt
||
server.crt(+key) //issuer sub_ca.crt (this is for private_key_file and certificate_file in freeradius config)
||
client1.crt
client2.crt
..... //issuer sub_ca.crt
I'm concatenate ca.crt file with sub_ca.crt, openssl verify produces "OK".
# openssl verify -CAfile ca.crt clent.crt
clent.crt: OK
But trying to authenticate from client I got error - unknown_ca. I have attached full debug log.
client(wpa_supplient) -> wifi-access(linksys with dd-wrt) -> server(freeradius-2.1.7)
wpa_supplient.conf:
network={
ssid="work"
proto=RSN
key_mgmt=WPA-EAP
pairwise=CCMP
eap=TLS
identity="radius"
ca_cert="/home/work/ca.crt"
client_cert="/home/work/wifi_client.crt"
private_key="/home/work/wifi_client.key"
private_key_passwd=""
priority=1
}
freeradius relevant section:
tls {
rsa_key_exchange = no
dh_key_exchange = yes
rsa_key_length = 512
dh_key_length = 512
verify_depth = 0
pem_file_type = yes
private_key_file = "/etc/raddb/certs/win/server.key" //generated from sub_ca
certificate_file = "/etc/raddb/certs/win/server.crt" //generated from sub_ca
CA_file = "/etc/raddb/certs/win/ca.crt" //concatenated ca.crt + sub_ca.crt from windows store
dh_file = "/etc/raddb/certs/dh" //generated by makefile
random_file = "/etc/raddb/certs/random" //generated by makefile
fragment_size = 1024
include_length = yes
check_crl = no
cipher_list = "DEFAULT"
}
Note:
Server.crt and client.crt has all necessary extensions(OIDs) - TLS Web Server Authentication and TLS Web Client Authentication
My question - is it able to organize such scheme - freeradius + windows certificate center? Is client.crt MUST be issued by server.crt or they both MAY be issued by higher level ca, like Active Directory does?
If this has been discussed before - please, point me in right direction.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: radius_win_failed.log
Type: text/x-log
Size: 26591 bytes
Desc: not available
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20100520/7b365d2e/attachment.bin>
More information about the Freeradius-Users
mailing list