Amazon Web Services (アマゾン)上にプライベートCAを構築して、https接続でWebページへのアクセス時にSSLクライアント認証をする( WordPress/ownCloud/Roundcube)
Private CA 機能の他に、SSLクライアント認証やリバースプロキシ-機能を持つPowered BLUE Private CA を利用します。サーバーの設定は全てGUIからの操作に対応しており、証明書の発行、失効なども簡単に自社管理での運用が出来ます。SSLクライアント認証時のアクセスログも取得します。Let’s Encryptにも対応しており、SSLサーバー証明書の自動更新での運用も可能です。
- プライベート CA (プライベート認証局)
- SSLクライアント認証
- リバースプロキシー
- Mail / Web / DNS サーバー
- WordPress
- ownCloud / オンラインストレージ ( バックアップ機能付き )
- Roundcube / Webmail
- Let’s Encrypt 対応
などを1台で同時に運用出来ます。
運用例
仮想サイト A.co.jp で以下のWeb サービスを同時に運用
- Let’s Encrypt でサイトのSSLサーバー証明書を利用
- WordPressで一般向けWebを運用 (SSLクライアント認証なし)
- WordPressで社員用Webを複数運用 (SSLクライアント認証)
- ownCloud を運用 (SSLクライアント認証)
- Roundcube を運用 (SSLクライアント認証)
- リバースプロキシを運用 (SSLクライアント認証)
など
オールインワン構成
分離構成
CA/リバースプロキシを分離での運用にも対応
別サーバーで運用のCAとの連携も出来ます
リバースプロキシ構成
AWSには Powered BLUE 870 / Based CentOS 7.4 を パブリック AMI として登録しています。
- 東京リージョン / ami-287bac57/ HVM / EBS-Backed
AMI / EC2 の検索&選択
VPNでアクセスの場合には、グローバルIPはアサインの必要はありません
インターネット側からアクセスの場合には、グローバルIPのアサインが必要です
サーバー起動後に、GUIでウイザードを実行します。GUIへのアクセスポートは http 81 / 444 番です firewallには TCP 81/444番 を通過させる設定が必要です
サーバーへのアクセス 例 http://54.65.17.7:444
管理サーバー名などを入力します
DNS などはAWSのデフォルトで設定されたものでも構いません。自社で独自に構築するのであれば、適宜指定します。
サーバーのIP/Gatewayなどは、変更せずにこのまま利用します。
adminのパスワードを入力します。
Languageに日本語を選択すると、GUIの表示は日本語となります。
Time-Zoneなどを適宜選択します
ウイザードの終了後に、サーバーへ再ログインします
管理サイト サーバー名等を設定します
NTPサーバーを指定します
プライベートCAの構築
CA証明書の作成
- CA証明書の有効期限を設定
- CAのパスワードを設定
以上でCAの構築は終了
SSLクライアント証明書の発行
プライベートCAでSSLクライアント証明書を発行。クライアント証明書は、会社や部門全体での一括発行や、1ユーザーごとの個別の発行が出来ます
SSLクライアント証明書を個別発行の場合(1枚発行の場合)
例 suzuki@mubit.com ユーザーのクライアント証明書を作成
有効期限などを指定して発行します
有効期間やポリシーを設定して、「部門や全社員の一括発行」なども対応しています
SSLクライアント証明書をダウンロードします
ユーザーが個別に、発行されたSSLクライアント証明書をURL通知でダウンロードさせることも出来ます
SSLクライアント証明書のブラウザへのインストール(IEの場合)
ツール - インターネットオプション - コンテンツ - 証明書 を選択
個人のタグを選択
個人の証明書ストアへインポートします
SSLクライアント認証の設定
Private CAとWebサーバーを同一の仮想サイトで運用の場合
- 例 ca-test.mubit.jp で運用の場合
SSLサーバー証明書の登録
- Webサーバーを運用するサイトへSSLのサーバー証明書を登録します
- 「自己署名デジタル証明書の作成」 または 「署名リクエストの作成」 で作成します
自己署名デジタル証明書の作成の場合 (プライベートSSLサーバー証明書の場合)
- 「自己署名デジタル証明書の作成」から必要事項を記入して、SSLを有効にします
- 自己署名によるSSLのサーバー証明書が登録されます
署名リクエスト / CSR で作成の場合 (パブリックSSLサーバー証明書の場合)
公的なSSLサーバー証明書を登録の場合には、ブラウザへの警告メッセージ
「このWebサイトで提示されたセキュリティ証明書は、信頼された証明機関から発行されたものではありません」
を抑制することが出来ます
SSLのサーバー証明書は
- ドメイン認証証明書(DV:Domain Validation)
- 組織認証証明書(OV:Organization Validation)
- EV証明書(EV:Extended Validation)
が登録出来ます。
- 必要事項を記入して、 「署名リクエストの作成」 ボタンを押します
SSLサーバー証明書のインポート
- 公的機関で発行された、サーバー証明書を 「インポート」 します
- 中間証明書のインポートにも対応しています
- Let’s Encrypt対応(Let’s EncryptのSSLサーバー証明書も組み込めます)
- SNI対応 (IPアドレス1個で複数のWebサイトのSSL化)
SSLクライアント認証を有効
https://ca-test.mubit.jp へアクセス時のSSLサイトのクライアント認証を有効にします
Web Page https://ca-test.mubit.jp へのアクセス
SSLクライアント認証が有効の場合 / Web ページへアクセスが出来ます
SSLクライアント認証が無効の場合
有効なSSLクライアント証明書が無いクライアントからのアクセスの場合 ( IPhone )
Private CAとWebサーバーを異なるサイトで運用の場合
Webサービス用の仮想サイトを構築します
例 test-web.mubit.jp
test-web.mubi.jp サイトからPrivate-CA の運用サイト http://ca-test.mubit,.jp とのcrl (失効リスト)の同期設定を行ないます
Webサーバーを運用するサイトには、SSLのサーバー証明書をインストールします
リバースプロキシ連携の場合
別サーバーで運用中のWebサーバーへのアクセス時にSSLクライアント認証
desknets へのリバースプロキシの設定例
既存で運用中のWebサーバー(デスクネッツ)側の変更は不要です
リバースプロキシ設定&有効化
Private-CA を運用のサイトでリバースプロキシも運用します
プライベート認証局のこの仮想サイトにアクセスしたクライアントを、SSLクライアント認証後にリバースプロキシで指定したサーバーへリダイレクトさせます。
例 https://PrivateCAのサイト/demo/ -> http://www.zyx.co.jp/demo/
SSLクライアント認証でCA&デスクネッツへのアクセス - 承認された場合
有効なSSLクライアント証明書がインストールされたブラウザで、初回にアクセス時のブラウザでの表示例 (Firefox)
https://ca-test.mubit.jp/dneo/dneo.cgi
desknet’s NEOのログイン画面
2要素認証 — デスクネッツネオの認証画面
desknet’s NEOへログイン後の画面
AWS ELB / ロードバランサ / SSLクライアント認証 / リバースプロキシ-連携も出来ます
SSLクライアント認証時のアクセスコントロール
有効なSSLクライアント証明書を有している場合でも、Webサイト毎に各種のアクセスコントロールが設定出来ます
失効リスト(CRL)に関わらず、ただちにWebへのアクセス禁止を設定できます
SSLクライアント証明書を失効させることなく、Webへのアクセスを禁止できます
- 利用するアプリでのアクセス制限
- 組織や部門でのアクセス制限
- 曜日や時間帯でのアクセス制限
- 特定ユーザーでのアクセス制限
- 端末を紛失したので、ただちにAさんのSSLクライアント証明書でのアクセスを禁止
SSLクライアント認証のログ
SSLクライアント認証時のアクセスログの出力先を指定出来ます。Webサーバー側でアクセスログを取得出来ます。
デモサーバー
Powered BLUEの デモサーバー
終わりに
SSLクライアント認証でWebサイトの認証を強化したい方、既存で運用のWebサイトへのアクセスに認証機能を導入したい方。デモ環境で試してみたい方や詳しい話を聞いてみたい方などは、ムービットの お問い合わせフォーム からご連絡ください。