2015年2月27日金曜日

Viewに接続出来ない(SSL構成編)

職業柄と個人的な好みでViewに携わらせてもらう機会が多いので、これまでに出逢った「View接続問題」をご紹介します。

今回は、「SSL構成編」です。

View ClientからConnection Serverに接続した時に、以下の画面が表示されて接続出来ない場合があります。

この問題はいくつかの条件が重なった時にのみ発生するのですが、少し細かいお話なので、結論を先にお伝えしますと、ルート証明書の配布はきちんと行いましょう!当前w

ということで、発生する条件を整理してみましたので、ご興味のある方は続きをどうぞ。


まず、ひとつ目の条件はConnection Serverの証明書構成です。

View 5.1以降はSSL証明書が必須となり、Connection Serverをセットアップした直後は自己署名型の証明書が構成されます。
もちろん、ドメインの証明機関や公的な第三者機関で発行されたセキュリティ証明書の利用が推奨されますが、検証段階であれば自己署名型で構成されていることも多いと思います。

Connection Serverの証明書構成は以下の2つ。
1. 自己署名型の証明書を構成 ※デフォルト
2. (ドメイン含む)信頼された証明書機関から発行された証明書を構成

ふたつ目の条件はルート証明書の配布状況です。

「1」の場合、何もしなければルート証明書はクライアントに配布されません。
ADのグループポリシーを使ってルート証明書を配布することも出来ますので、検証とは言え、証明書のエラーを表示させたくない場合にはルート証明書を配布されることをオススメします。
「2」の場合、公的機関であればルート認証局のリストに掲載されている思いますし、ドメインであればクライアントがドメインに参加すれば自動的にルート証明書が配布されます。

当然ですが、ルート証明書の配布状況は以下の2つ。
A. ルート証明書配布済み
B. ルート証明書未配布

最後の条件はViewClient側のSSL構成です。

Horizon View Clientには接続するサーバーの証明書を確認する機能があり、画面右上の設定メニューより[SSLを構成(O)...]より設定出来ます。

設定は以下の3つ。
a. 信頼されていないサーバに接続しない
b. 信頼されていないサーバに接続する前に警告する ※デフォルト
c. サーバID証明書を検証しない
# 証明書必須というだけあって、デフォルトでチェックが有効になっています。

これら3つの条件の組み合わせが、「2 + B + b」もしくは「1 or 2 + B + a」の場合に、SSLの構成が原因でViewに接続出来ない問題が発生します。

「2 + B + b」のケース
具体的なシーンを考えるとイメージ頂きやすいと思いますが、検証を終えて本番運用を開始する際に信頼された証明機関から発行された証明書に変更したものの、ルート証明書がクライアントに配布されておらず、View ClientのSSL構成がデフォルト設定のまま、の場合です。

「b」の"信頼されていないサーバに接続する前に警告する"は証明書確認において問題がある(いわゆるルート証明書がない)場合でも、[続行]ボタンを押してエラーを無視することが出来るオプションなのですが、[続行]ボタンを押して接続出来るのは、自己署名型の証明書を構成している場合のみとなります。# 長年バグだと思っていました、、VMwareさんごめんなさい。

View Cleint のドキュメントにもちゃんと明記されています。
http://www.vmware.com/files/jp/pdf/horizon-client-windows-store-document.pdf
【抜粋】
P.35 [信頼されていないサーバに接続する前に警告する]。
サーバが自己署名証明書を使用していることが原因で、証明書の確認に失敗した場合、
[続行] をクリックして警告を無視することができます。

そのため、Connection Serverの証明書として、ドメインを含む公的機関で発行した証明書を構成する場合、ルート証明書の配布は非常に重要です。

「1 or 2 + B + a」のケース
「a」の"信頼されていないサーバに接続しない"はデフォルト設定ではないので、明示的に設定を変更したことになり、きちんと証明書が構成されている環境だと思いますので、発生頻度は低いと思いますが、ユーザーが誤って設定変更してしまうケースもあるかもしれません。

この場合、「1」の場合であれば、View Clientの設定をデフォルト(信頼されていないサーバに接続する前に警告する)に戻せばOKです。

「2」の場合、View Clientの設定をデフォルトに戻しても接続出来ませんので、ルート証明書が正しく配布出来ているかを確認しましょう。

とはいえ、ルート証明書の配布がうまくいかない場合などですぐに接続させたい場合は、View ClientのSSL構成を一番下(サーバID証明書を検証しない)に変更すれば接続出来ます。

いずれにしてもSSLでの接続が必須である以上、証明書をどのように構成するのか、ルート証明書をどのように配布するのか、もViewを設計・構築する上では重要なポイントになります。

0 件のコメント:

コメントを投稿