マイナンバー制度などにより不正アクセス対策の重要度が増しております。SSLクライアント認証を利用することで、パスワードの漏えいによるWebへの不正アクセスやパスワード総攻撃(ブルートフォースアタック)による不正なログインを防ぐことができます。
Webページへアクセスの際に、有効なSSLクライアント証明書を持つユーザーのみにアクセスを許可するWebサイトを構築&運用する方法を解説します。
一般的に必要な事項
- SSLクライアント証明書の発行・管理
- SSLクライアント認証対応のWebサーバー
が必要となります。
コマンドラインなどでの操作により、SSLクライアント証明書の発行・失効などの運用のケースでは、発行枚数が多い場合やユーザーごとに異なる期間での発行・運用などでは、運用者側の負担が大きいので大変です。
今回は、プライベートCA機能を持つアプライアンスサーバー 「Powered BLUE プライベートCA」 を利用するとにより、管理者や運用者に負担をかけずに、簡単にセキュアなアクセスに対応したWebサーバーを構築&運用の出来る方法を紹介します。
「Powered BLUE プライベートCA」 は、Linux OS (CentOS 7 / RedHat7) 上で動作するアプライアンス・サーバーです。機能としては
- インターネットサーバー機能(Web/Mail/DNS/ftp/Syslog)
- プライベートCA (SSLクライアント証明書の発行・管理)
- SSLクライアント認証対応のWebサーバー
を1台で、運用する機能を備えています。 アプライアンスとして提供されているので、仮想環境やクラウド環境に仮想アプライアンスをインポートすることにより、すぐにSSL認証付きのWebが導入&運用が可能です。またハードウエア・アプライアンスもあります。Amazonでは、AMIを利用することで、簡単に運用が出来ます。
Powered BLUE サーバーの運用先
- VMware / Hyper-V 仮想基盤
- Amazon AWS
- Azure
などに対応しています。
商用のCloudStackを運用してる事業者やサービス
- NTTコミュニケーションズ (cloudn)
- GMOクラウド (ALTUS)
- IDCフロンティア (セルフクラウド)
- KDDI (クラウドプラットフォームサービス)
- QIC (Qumo)
などに対応しています。
今回紹介の運用時のイメージとしては、
- インターネットサーバー機能(Web/Mail/DNS/ftp/Syslog)
- プライベートCA (SSLクライアント証明書の発行・管理)
- SSLクライアント認証対応のWebサーバー
を1台で運用します。
VMware / Hyper-Vの仮想環境で運用する場合
- 仮想アプライアンスのイメージ
をインポートします。
AWSで運用の場合は、Powered BLUE の AMI を利用します。
- AWS上にPowered BLUE をセットアップする ( AMI )
インポートした仮想アプライアンスの設定
サーバーへログイン
サーバーIP/gw/参照するDNSなどの設定
仮想サイトの構築
WebサーバーとプライベートCAを運用する仮想サイトを構築(CA機能を有効にします)。各種パラメータは、作成後でも変更が出来ます。プライベートCAはマルチサイトに対応しており、複数のプライベートCAを異なる仮想サイトで構築・運用ができます。仮想サイトごとに、管理者の権限をサイトの管理者へ委譲することにも対応しています。
仮想サイトの作成後は、このサイトでWebページを運用出来ます
SSLサーバー証明書の登録
- Webサーバーを運用する仮想サイトへSSLのサーバー証明書を登録します
- 「自己署名デジタル証明書の作成」 または 「署名リクエストの作成」 で作成します
自己署名デジタル証明書の作成の場合 (プライベートSSLサーバー証明書の場合)
- 「自己署名デジタル証明書の作成」から必要事項を記入して、SSLを有効にします
- 自己署名によるSSLのサーバー証明書が登録されます
署名リクエスト / CSR で作成の場合 (パブリックSSLサーバー証明書の場合)
公的なSSLサーバー証明書を登録の場合には、ブラウザへの警告メッセージ
「このWebサイトで提示されたセキュリティ証明書は、信頼された証明機関から発行されたものではありません」
を抑制することが出来ます
SSLのサーバー証明書は
- ドメイン認証証明書(DV:Domain Validation)
- 組織認証証明書(OV:Organization Validation)
- EV証明書(EV:Extended Validation)
が登録出来ます
- 必要事項を記入して、 「署名リクエストの作成」 ボタンを押します
- 作成された 「署名リクエスト」 ファイルを保存
- この 「署名リクエスト」 ファイル signig-request.txt を、公的なSSLサーバー証明書の発行機関へ送付
- 公的機関で発行された、サーバー証明書を 「インポート」 します
- 中間証明書のインポートにも対応しています
Let’s encrypt のSSLサーバー証明書を利用することも出来ます
プライベートCAの設定
この仮想サイトで、仮想サイトの「CA証明書の新規作成」をします。
- CA証明書の有効期限を設定
- CAのパスワードを設定
以上でCAの設定は終了
SSLクライアント証明書発行
Powered BLUE プライベートCAで、この仮想サイトのSSLクライアント証明書を発行します。証明書は、
- 部門や全社での一括発行
- 1ユーザーごとの個別発行
などが出来ます。
SSLクライアント証明書のダウンロード
SSLクライアント証明書は、利用するブラウザにインストールします
SSLクライアント認証の有効化
[クライアント認証を有効にする] ことで、このPowered BLUE の仮想サイトへは、有効なSSLクライアント証明書がインストールされた ブラウザのみ、SSLでこの仮想サイトへアクセスが出来ます。
SSLクライアント認証によるアクセス設定は
- 個別ディレクトリ
- 個別ファイル
の指定が出来ます。
特定のdirのみ認証を設定
- https://PrivateCA の仮想サイト/ 仮想サイト全体
- https://PrivateCA の仮想サイト/xx 特定のdirを指定
特定のファイルのみ認証 (wordpress管理者のlogin ファイルのみ認証)
- https://PrivateCA の仮想サイト/yy/login.html
SSLクライアント認証でwebへのアクセス - 承認された場合
有効なSSLクライアント証明書がインストールされたブラウザで、初回にアクセス時のブラウザでの表示例(Firefox)
https://10.0.0.3/xx/
または、dnsの設定がされていれば、サイト名でのアクセス
https://cybozu.mubit.com/xx/
SSLクライアント認証 - 承認されない場合
有効なSSLクライアント証明書が無いクライアントからのアクセスの場合 ( IPhone )
一つの仮想サイトに、ホームページをはじめ複数のWebアプリを導入して、SSL認証での運用もできます
webページの表示 ( 例 WebMail / RoundCubeの場合 )
webページの表示 ( 例 オンラインストレージ/ ownCloudの場合 )
webページの表示 ( 例 wordpress 管理者のログインページの場合 )
webページの表示 ( 例 cybozuの場合 )
webページの表示 ( 例 desknetsの場合 )
仮想サイトでは
一般的なWeb ソフト
- Web ページ
- zabbix
なども仮想サイト上に構築して、これらのWebアプリケーションへのSSLクライアント認証を1台(同一)の仮想サーバー上で運用することが出 来ます。
また、既存のWebシステムへの認証は、Powered BLUE プライベートCAのリバースプロキシ機能により、SSLクライアント認証後に既存Webアプリケーションへのリダイレクトでの運用にも対応しています。
CA & リバースプロキシでの表示 (例 Proselft の場合 )
デモサーバー
Powered BLUEの デモサーバー
基本操作 / リバースプロキシ / SSLクライアント認証 などのデモが出来ます
ワンタイムパスワード認証
Webのサイトへのアクセスに際して、OTP / ワンタイムパスワード対応のWebサイトの構築・運用例です。
多要素認証
ワンタイムパスワード認証&SSLクライアント認証の併用時のWebサイトの構築・運用例です。多要素認証でさらに高い安全性を確保したい場合に有効です
終わりに
ワンタイムパスワード認証やSSLクライアント認証でWebサイトの認証を強化したい方、既存で運用のWebサイトへのアクセスに認証機能を導入したい方。デモ環境で試してみたい方や詳しい話を聞いてみたい方などは、ムービットの お問い合わせフォーム からご連絡ください。