質問: 宜しくお願い致します。 ここ最近、SSLについて触れる機会が多く色々と調べていたらちょっと気付いたのですが、SSLという暗号化技術そのものはApacheに後付け出来る機能なのだとわかりました。そうすると、高い年間費を払ってSSL-IDを取得する意味合いが良く分からなくなってきました。例えば、 『多くの人に見られるページはSSL-IDを取得し、管理など他の人間には見られないようなページはApacheに機能をつけるだけ』 という様な使い方の定義みたいな物があれば教えて下さい。金額的に安くないので、その差がはっきりと見えるとうれしのですが・・・
回答: こんばんは。 以下、少し回りくどい説明に感じられるかもしれませんが、できればお付き合いください。 >>SSLという暗号化技術そのものはApacheに後付け出来る機能なのだとわかりました。 ↓ もちろん、これは誤りではありませんが、少しポイントがズレた認識だと感じます。 SSLは、"PKI"と呼ばれる「公開鍵暗号方式を利用した通信インフラの枠組み」に含まれる一つの通信プロトコルであり、その技術や利用対象は、もう少し広い視野を持ったものです。(当然、"IIS"など他のWebサーバーでもSSL(サービス)は利用可能です。) Apacheは、基本構成をシンプルにして必要なサービス(モジュール)を後付していく設計思想をとっているため、多くのレクチャーがApacheへのSSLモジュール組み込みに関する解説を行っていると言うことです。 後述の内容を含め、SSLをより正確に理解し、正しく有効に活用していただくためにも、文末にて紹介のURLなどからたどれる「PKIやSSLについての基礎知識習得(概念理解)」をなさるように、私の方からはオススメさせてください。 全体的なイメージをつかむための流れとしては、「PKIの理解(公開鍵暗号や証明書の役割を含め)」→「それがSSLにどのように応用されているのかを理解」→「Webサイト(サーバー)への具体的なSSL実装・運用方法」というカンジになるかと思います。 >>高い年間費を払ってSSL-IDを取得する意味合いが良く分からなくなってきました。 ↓ SSLに関しては、どうしても「通信の暗号化」のみにイメージが集中しがちですが(ゆえに、証明書の重要性について直感的な理解がしにくいのですが)、もう一点大変重要なポイントとして、「認証」(通信相手が本当に意図した者であるか確認できる仕組み)という大切な要素を考えなければなりません。(ブラウザに表示される鍵アイコンの”中身”についての話です。) 想定されている(であろう)、<公開Webサイト(サーバー)>←→<不特定多数のクライアント(プラス、一部のページへのアクセス制限)>を想定したSSL導入については、「そのWebサイト(サーバー)にアクセスしてきたクライアントが、間違いなく本物のサイト(サーバー)に接続できていると(成りすましが無いことを)証明できる仕組み」が重要になります。(これが「通信の暗号化」を含めたSSLの屋台骨となります。) さらに具体的に言うと、「認証局(CA」と「証明書(この中にデジタルIDも含まれる)」の役割について理解する必要があります。 上記の要素について、nikuqさんがどの程度理解されているのかがわからないので、少々不安なのですが、そのサイトに初めてアクセスしてきた人を含めた不特定多数(商用サイトではお客)に対して、証明書を利用したサーバーの認証(身元保証)を行うためには、世の中のエンド・ユーザーが利用している(広く普及している)ブラウザにプリ・インストールされた”ルート証明書”(典型的にはベリサインのものなど)を利用できる環境をつくる必要があるわけです。 完全に閉じた組織であれば、無償で発行できる自前の証明書(いわゆる「オレオレ証明書」)を利用しても構わないという場合もありますが(ここのところ、国内の地方公共団体や国際的なオープンソース・ベースでの証明書利用環境も登場し始めていますが)、インターネット上の公開Webサーバーでは、上記のような有償の「ルート認証局からお墨付きを得た証明書」を利用するのが基本です。(仕組み上、信頼できる第三者に身元を保証してもらう必要があるという言い方もできるでしょう。) 商用サイトなど、不特定多数のお客(クライアント)のアクセスを前提としたサイト(サーバー)で自前の証明書を発行して運用した場合、アクセスしたクライアントのブラウザには「警告」(証明書の有効性=接続先のサーバの真偽を確認できない旨の)が表示されることになります。 ここで、その「オレオレ証明書」をクライアントのブラウザに「ルート証明書」としてインストールさせてしまえば、以後警告は出なくなるわけですが(その他の証明書の不備がある場合は別です。)、これでは「信頼できるルート証明書ありき」というPKI(SSL)の仕組み自体が台無しになってしまいます。(いまだに、このようなタブーを堂々と犯している組織(サイト)もあるのですが...) というわけで、インターネット上の公開サーバーで”大手をふって”SSLを運用したいのであれば、コスト比較の問題ではなく、有償の証明書を取得する必要がありますし、「クライアント側から見た動作検証」や「有効期限などの証明書管理(警告自体を出さない事が重要です。)」を含めた「正しい運用」を行う必要があります。 もちろん、自組織のみの運用や実験環境などであれば、上記の話は該当しませんし、自前発行の証明書利用も「正解」となるケースもあるでしょう。 しかしながら(しつこいようですが)、一般公開や商売目的でサービス提供を行うのであれば、既述のような鉄則を外すべきではありません。(逆説的に言えば、ルート認証局の商売(有償の証明書)が成立しているのには、やはりそれなりの理由があると言うことですネ。) 以上、あまり整理できていない記述で恐縮ですが、下記URLなどとともに参考になさってみてください。 それでは。 ■@IT ”PKI”をキーワードとしたレクチャーのリスト■ Copyright(c) 2000-2005 ITmedia Inc. ↓ ■同 ”SSL”をキーワードとしたレクチャーのリスト■ ↓