
長い間、私はDebian 7で設定されたNetworkManager + wpa_supplicantを使用して職場で安全なワイヤレスネットワーク(PEAP + MSCHAPv2認証を使用するWPA2 Enterpriseなど)に接続できました。
最近では、サーバー証明書をNetwork Manager接続設定に統合して、接続のセキュリティを強化したいと思いました。ネットワーク管理者から2つのPEMキーを受け取りました。
- radius1.pem - RADIUS証明書
- globalsign_intermediary.pem - 仲介証明書
RADIUS 証明書の信頼性は中間証明書によって異なります。中間証明書は、GlobalSignの最終ルートCAによって異なります。
これは私の目標です:Wi-Fiネットワークに接続するたびに、ノートパソコンでWi-Fiアクセスポイントの信頼性を確認したいと思います。/etc/NetworkManager/system-connections/THE-AP-NAME
これを達成するために、これらの証明書を接続設定(ファイル)にどのように配置できますか?具体的には、どのファイルをどこに一覧表示する必要があります(たとえば、構成ファイルなど)、サーバー証明書を確認するにはどのような追加手順が必要ですか?ここでこの質問をする理由は、私が他の場所で見つけたすべてがワンステップ証明書の確認だけだからです。ここで証明書は、私の場合と同様に、中間CAではなく、確立されたルートCAに依存する可能性があります。
現在、私の接続設定ファイルの内容は次のとおりです(XXXXとYYYYはあいまいな情報を表します)。
[ipv6]
method=ignore
[connection]
id=XXXXXXXXX
uuid=XXXXXXXXX
type=802-11-wireless
timestamp=1436377448
[802-11-wireless-security]
key-mgmt=wpa-eap
[802-11-wireless]
ssid=XXXXXXXXX
mode=infrastructure
seen-bssids=XXXXXXXXX
security=802-11-wireless-security
[802-1x]
eap=peap;
identity=XXXXXXXXX
password=YYYYYYYYY
ca-cert=/etc/NetworkManager/certs/work/globalsign_intermediary.pem
phase2-auth=mschapv2
[ipv4]
method=auto
ご覧のとおり、中間証明書ファイルを使用しています。しかし、これは正しくありません。 RADIUS証明書ファイルのみを使用することも正しくありません。どちらの場合も、次のエラーが発生しますsyslog
。
Jul 8 12:02:37 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-STARTED EAP authentication started
Jul 8 12:02:37 wirawan1 kernel: [3880972.051159] wlan0: Limiting TX power to 20 (20 - 0) dBm as advertised by xx:xx:xx:xx:xx
Jul 8 12:02:37 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25
Jul 8 12:02:37 wirawan1 wpa_supplicant[3638]: OpenSSL: tls_connection_ca_cert - Failed to load root certificates error:00000000:lib(0):func(0):reason(0)
Jul 8 12:02:37 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected
Jul 8 12:02:37 wirawan1 wpa_supplicant[3638]: TLS: Certificate verification failed, error 20 (unable to get local issuer certificate) depth 1 for '/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Organization Validation CA - G2'
Jul 8 12:02:37 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-TLS-CERT-ERROR reason=1 depth=1 subject='/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Organization Validation CA - G2' err='unable to get local issuer certificate'
Jul 8 12:02:37 wirawan1 wpa_supplicant[3638]: SSL: SSL3 alert: write (local SSL3 detected an error):fatal:unknown CA
Jul 8 12:02:37 wirawan1 wpa_supplicant[3638]: OpenSSL: openssl_handshake - SSL_connect error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Jul 8 12:02:38 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-FAILURE EAP authentication failed
Jul 8 12:02:40 wirawan1 wpa_supplicant[3638]: wlan0: Authentication with xx:xx:xx:xx:xx timed out.
当然、信頼チェーンを構築することはできません。
ハードウェアは(lspci)です:
03:00.0 Network controller: Intel Corporation PRO/Wireless 5100 AGN [Shiloh] Network Connection
iwlwifi+iwldvm ドライバーを使用します。カーネルバージョン3.12.9-1~bpo70+1 (2014-02-07)
、debianバックポートパッケージlinux-image-3.12-0.bpo.1-amd64
。
私はLinuxを初めて使用していますが、Linuxでx509および/またはSSL / TLSセキュリティを処理する方法がわかりません。したがって、この回答のステップバイステップの指示に従ってください。この質問に対する答えを見つけるためにインターネット検索をしてみると残念です。 WPA申請者文書では、WPA2 Enterpriseで使用する証明書について非常に簡潔に説明します。 NetworkManagerのドキュメントははるかに悪いです。
答え1
結局、組織のITスタッフと話し合い、問題は簡単に解決されました。私の間違いはいくつかの間違いで構成されました。
- 無効な証明書が含まれています。
- 正しいルート証明書が含まれていません。
- 証明書が正しい順序で注文されていません。
「CA証明書」ファイルは、信頼度順(最も信頼性の低いものから最も信頼性の高いものから)に関連付けられた証明書のリストを含む単一テキストファイル(PEM形式)でなければなりません。 RADIUS 証明書は含める必要はなく、含めることはできません。 RADIUS 証明書は有効期間も最も短いです。この方法を機能させるには、ルート証明書までアップストリーム証明書を含める必要があります。私の場合、信頼順序は次のとおりです(最小信頼度から最も信頼性の高い順)。
RADIUS cert -> intermediary cert -> root cert
警告:あなたの状況は非常に異なる場合があります。 IT担当者は、私のルート証明書が「GlobalSign Root R1」であり、シリアル番号は次のとおりです。
04:00:00:00:00:01:15:4b:5a:c3:94
彼の助けがなければ、私はこれを見つけることができなかったでしょう。 GlobalSign Webサイト(下記参照)からルート証明書をダウンロードし、バイナリ証明書をPEM形式に変換しました。
$ openssl x509 -inform der -in Root-R1.crt -out Root-R1.pem
その後、証明書をルートとして接続します。
# cat globalsign_intermediary.pem Root-R1.pem > /etc/NetworkManager/certs/work/all-certs.pem
そして、NetworkManagerの接続設定にフルパスを含めますall-certs.pem
(GUIを介して、または質問にリストされているテキストファイルを編集して)。それではNetworkManagerを再起動してください。 Debianボックスでは、これは次のことを意味します。
# service networkmanager restart
再起動後、システムログに示すようにAPの信頼性を確認できました。
Jul 8 16:03:32 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25
Jul 8 16:03:32 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected
Jul 8 16:03:32 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-PEER-CERT depth=2 subject='/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA'
Jul 8 16:03:32 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-PEER-CERT depth=1 subject='/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Organization Validation CA - G2'
Jul 8 16:03:32 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-PEER-CERT depth=0 subject='/C=US/XXXXXX (details removed)'
Jul 8 16:03:33 wirawan1 wpa_supplicant[3638]: EAP-MSCHAPV2: Authentication succeeded
Jul 8 16:03:33 wirawan1 wpa_supplicant[3638]: EAP-TLV: TLV Result - Success - EAP-TLV/Phase2 Completed
Jul 8 16:03:33 wirawan1 wpa_supplicant[3638]: wlan0: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
詳細
興味のある方のために、中級証明書には以下のトピックが含まれています。
subject= /C=BE/O=GlobalSign nv-sa/CN=GlobalSign Organization Validation CA - G2
この「組織」CAは、次のようにR1キーを使用する必要があります。
https://support.globalsign.com/customer/portal/articles/1426602-globalsign-root-certificates