EAP TLS認証にFreeRADIUSを実行したいのですが、自分の証明機関を実行する代わりに、 StartSSL を使用したいと思います。
StartComを唯一の信頼されたルートCAとしてEAP TLSを設定しましたが、問題なく動作しますが、StartSSL証明書を持つ人なら誰でも私のネットワークに接続できます。
クライアント証明書の共通名check_cert_cn = *@example.com
などに基づいてアクセスを許可したいのですが、check_cert_cn
の値にワイルドカードを使用できないようです。
これを達成する方法はありますか?私はこの問題に間違った方法で取り組んでいる可能性があります。レルムか何かを見ているべきですか?または、それを受け入れて自分のCAを実行します。
少し掘り下げた後、私は GitHubでのコミット に遭遇しました。
virtual_server = check-eap-tls
のeap.conf
のコメントを外しました
次に、check-eap-tls
にsites-available
を作成し、sites-enabled
にシンボリックリンクします。
server check-eap-tls {
authorize {
if ("%{TLS-Client-Cert-Common-Name}" =~ /^[A-z.]*@example\.com$/) {
update config {
Auth-Type = Accept
}
}
else {
update config {
Auth-Type = Reject
}
update reply {
Reply-Message = "Your certificate is not valid."
}
}
}
}
=~
の代わりに==
を使用すると、正規表現を使用でき、すべての証明書がドット付きのアルファになるので、^[A-z.]*@example\.com$
が機能します。