AWS/EC2にプライベート認証局(CA)を構築 & SSLクライアント認証をする

Amazon Web Services (アマゾン)上にプライベートCAを構築して、https接続でWebページへのアクセス時にSSLクライアント認証をする( WordPress/ownCloud/Roundcube)

Private CA 機能の他に、SSLクライアント認証やリバースプロキシ-機能を持つPowered BLUE Private CA を利用します。サーバーの設定は全てGUIからの操作に対応しており、証明書の発行、失効なども簡単に自社管理での運用が出来ます。SSLクライアント認証時のアクセスログも取得します。Let’s Encryptにも対応しており、SSLサーバー証明書の自動更新での運用も可能です。

Powered BLUE Private CA の 機能

  • プライベート 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クライアント認証)

など

オールインワン構成

https://www.mubit.co.jp/sub/products/ca/img2/ca-ssl-allinone1.png

分離構成

https://www.mubit.co.jp/sub/products/ca/img2/ca-01.png

CA/リバースプロキシを分離での運用にも対応

別サーバーで運用のCAとの連携も出来ます

 

リバースプロキシ構成

https://www.mubit.co.jp/sub/products/blue/img2/reverse-01.png

 

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:444aws-ami-wizard1

 

管理サーバー名などを入力します

DNS などはAWSのデフォルトで設定されたものでも構いません。自社で独自に構築するのであれば、適宜指定します。

サーバーのIP/Gatewayなどは、変更せずにこのまま利用します。

adminのパスワードを入力します。

Languageに日本語を選択すると、GUIの表示は日本語となります。

Time-Zoneなどを適宜選択しますaws-ami-wizard3

 

ウイザードの終了後に、サーバーへ再ログインしますaws-pb-login1

 

管理サイト サーバー名等を設定しますaws-pb-login2

 

NTPサーバーを指定しますaws-pb-login22

 

プライベートCAの構築

プライベートCAを運用する仮想サイトを設定しますca-test3

CA証明書の作成

  • CA証明書の有効期限を設定
  • CAのパスワードを設定

ca-test2

以上で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サイトのクライアント認証を有効にしますca-test4

 

Web Page  https://ca-test.mubit.jp へのアクセス

SSLクライアント認証が有効の場合 / Web ページへアクセスが出来ます

ca-test6

SSLクライアント認証が無効の場合

有効なSSLクライアント証明書が無いクライアントからのアクセスの場合 ( IPhone )

 

Private CAとWebサーバーを異なるサイトで運用の場合

Webサービス用の仮想サイトを構築します

例 test-web.mubit.jp

ca-test7

test-web.mubi.jp サイトからPrivate-CA の運用サイト http://ca-test.mubit,.jp  とのcrl (失効リスト)の同期設定を行ないます

Webサーバーを運用するサイトには、SSLのサーバー証明書をインストールします

 

 

リバースプロキシ連携の場合

別サーバーで運用中のWebサーバーへのアクセス時にSSLクライアント認証

desknets へのリバースプロキシの設定例

既存で運用中のWebサーバー(デスクネッツ)側の変更は不要です

https://www.mubit.co.jp/sub/products/blue/img2/reverse-01.png

リバースプロキシ設定&有効化

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要素認証 —  デスクネッツネオの認証画面

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/03/desknets-neo-proxy02.png

 

desknet’s NEOへログイン後の画面desknets-neo-proxy2

 

AWS  ELB / ロードバランサ / SSLクライアント認証 / リバースプロキシ-連携も出来ます

ca-reverse-2

 

SSLクライアント認証時のアクセスコントロール

有効なSSLクライアント証明書を有している場合でも、Webサイト毎に各種のアクセスコントロールが設定出来ます
失効リスト(CRL)に関わらず、ただちにWebへのアクセス禁止を設定できます
SSLクライアント証明書を失効させることなく、Webへのアクセスを禁止できます

  • 利用するアプリでのアクセス制限
  • 組織や部門でのアクセス制限
  • 曜日や時間帯でのアクセス制限
  • 特定ユーザーでのアクセス制限
  • 端末を紛失したので、ただちにAさんのSSLクライアント証明書でのアクセスを禁止

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/12/ssl-access-3-1.png

 

SSLクライアント認証のログ

SSLクライアント認証時のアクセスログの出力先を指定出来ます。Webサーバー側でアクセスログを取得出来ます。

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/12/ssl-access-2.png

 

デモサーバー

Powered BLUEの  デモサーバー

 

終わりに

SSLクライアント認証でWebサイトの認証を強化したい方、既存で運用のWebサイトへのアクセスに認証機能を導入したい方。デモ環境で試してみたい方や詳しい話を聞いてみたい方などは、ムービットの https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif お問い合わせフォーム からご連絡ください。