TEL 050-3821-2195
営業時間:平日9:00-17:30
株式会社JCCH・セキュリティ・ソリューション・システムズ
〒116-0014 東京都荒川区東日暮里5-52-2 神谷ビル7F
その後FortiGateの実機で検証をおこない、その内容をホワイトペーパーにしたので以下リンクからご参照ください。
技術資料:FortiGate SSL-VPNでのクライアント証明書認証
以下のコラムは旧版となります。
新型コロナウィルスによるテレワークの推進にともない、「Gléas で発行したクライアント証明書を、FortiGate の SSL-VPN での認証に利用する場合の情報はないか?」とのお問い合わせを複数件いただきました。
これまで触れたことがなかったのですが、Fortinet 社さまのサポートサイトで FortiGate の評価用仮想イメージを配布されていたので、少し試してみました。
どうも評価版での制約があるようで FortiGate に対し RSA 512 ビットよりも大きい鍵長のルート証明書をインポートしようとすると CUI/GUI ともにエラーになってしまうため、すでに RSA 512 ビット鍵をサポートしない Gléas では対応ができず、筆者のほうでCAを作成し試したので Gléas としての技術情報にはなりませんが、製品版ではこの制約はないものと思いますので、手順などお役に立てばと思いコラムとして掲載することにしました。
(動作の確実性を保証するものではないので、あくまでもご参考情報としてお読みください)
検索すると同様の内容を解説しているWebサイトがいくつか見つかるので、あまり見かけなかった “LDAP-integrated certificate authentication” という認証時にクライアント証明書の情報と、Active Directory のユーザプリンシパル名(ユーザログオン名)との一致をチェックし、その上でパスワードを求める二要素認証の構成にしました。
環境構築にあたっては、以下のページを参考にさせていただきました。
https://docs.fortinet.com/document/fortigate/6.4.0/administration-guide/751987/ssl-vpn-with-ldap-integrated-certificate-authentication
今回利用したものは以下の通りです。
サーバ証明書をインストールします。Gléasで発行したRSA 2048ビット鍵長のものでCLIからインストールする分には問題はありませんでした。手順を以下に簡単に記します。
次に、ルート証明書(クライアント証明書の発行CA)をインストールします。今回の動作検証用に RSA 512 ビット鍵でルート CA を手元で作成し、管理画面より[CA証明書]としてアップロードします。
失効リスト(CRL)もあらかじめ作成して他のWebサーバにそのファイルを配置し、そのURLを管理画面から指定することで取得可能でした。
※自動更新については試していません。
次に、UPNのチェックをおこなうADの設定をします。
管理画面の[User & Authentication] > [LDAPサーバ]で、Active Directory に LDAPS アクセスできるように設定します。
次に、PKIユーザを作成します。LDAP-integrated certificate authentication で認証をおこなうユーザを作成する場合は、常にCLIで設定する必要があるようです。
config user peer edit testuser4 set ca CA_Cert_1 set ldap-server "js3-test12.local" set ldap-mode principal-name end
その後、Web管理画面より[User & AUthentication] > [PKI]より、追加したユーザが見えるようになっているので内容を編集します。
FortiGate の設定は以上です。
ルート証明書(サーバ証明書のトラストアンカ)と、クライアント証明書をPCにインポートしてから、FortiClientの設定をします。
設定画面で、インポートした証明書を選び、また各VPN設定をしていきます。
パスワードを入力して接続します。
問題なく接続できています。
管理画面より[ログ & レポート] > [Events]で VPN イベントを見ると、”SSL new SSL certificate verification success”というメッセージのログエントリが表示されます。
ルート証明書(サーバ証明書のトラストアンカ)をiPhoneに追加し、証明書信頼設定([設定]アプリから、[一般] > [情報] > [証明書信頼設定])をおこなっておきます。
また、PKCS#12 フォーマットのクライアント証明書ファイルの拡張子を “fctp12” に変更し iPhone にメール添付で送ります。
iPhone 上で受信したファイルの処理の選択肢から “FortiClientにコピー” を選ぶとアプリ内にインポートされます。
FortiClient のVPN接続設定でクライアント証明書の設定が可能となります。
iPhone からも接続がおこなえました。
以下をおこなうことにより、ログインできなくなることを確認しました。