tech::hexagram

personal note for technical issue.

SSL通信の勉強メモ

SSL

  • Webサーバのために作成された電子証明書に含まれる秘密鍵と公開鍵を利用することで、WebサーバとクライアントPC間の通信を暗号化できる
    • 接続したWebサーバが本当にドメインを所有しているかどうか(=ドメインの正当な証明書を持っているかどうか)をクライアントPCから検証可能
    • ニセのWebサーバによるなりすましを予防しやすくなる
  • 証明書
SSL通信の仕組み
  1. WebクライアントがSSLでのアクセスをWebサーバに要求する。
  2. Webサーバは電子証明書をWebクライアントに送信する。電子証明書認証局秘密鍵で暗号化されている。
  3. Webクライアントは受け取った電子証明書認証局の公開鍵を利用して復号化する。ブラウザに公開鍵がインストールされている場合はそれを利用し、ない場合は認証局から取得する。復号化した電子証明書から、Webサーバの公開鍵を取得する。
  4. Webクライアントはテンポラリの共通鍵を、入手したWebサーバの公開鍵を利用して暗号化してWebサーバに送信する。
  5. Webサーバは受け取った共通鍵を持っている秘密鍵を利用して復号化する。これにより、サーバ・クライアント間の通信は共通鍵を利用して暗号化された状態となる。これにより、データの送受信は暗号化して行うことができる。

SSL証明書

証明書の種類
名称・通称 概要 料金
ドメイン認証型 対象ドメインの所有を証明する証明書。対象ドメインを所有する組織や個人は証明されない。取得時には、ドメイン所有を確認するためにwhoisデータベースの登録情報が調べられたり、対象ドメインの特定メール・アドレス宛に確認のメールが送信されたりする。組織/個人の実在を証明する書類の提出が不要な分、組織認証型より手軽に取得できる 安い
組織認証型 ドメインの所有に加えて、そのドメインを所有する組織の身元も証明する証明書。取得時には登記簿謄本の提出が求められたり、公的な企業情報データベース(帝国データバンクなど)への登録が確認されたりする。書類審査が必要なので手続きには時間がかかる 高い
EV SSL 上記の組織認証型に加えて、厳格かつ統一的な基準のもとで、組織の実在や運営状況などが物理的に確認される。この証明書で証明されているWebサイトにアクセスすると、Webブラウザのアドレス・バーが緑色で表示される さらに高い
  • ドメイン認証型 : 限られた関係者だけがアクセスするWebサイトの場合
  • EV SSL証明書 : 一般ユーザーを対象にしたECサイトなど
証明書の機能
  • ワイルドカード : 1枚の証明書でサブドメインを証明できる。「*.example.jp」など。
  • マルチドメイン(SAN, UCC) : 1枚の証明書で複数のドメインを証明できる。複数ドメインを1台のサーバで運用している場合、個別に証明書を発行するより安価で済む場合がある。
  • サイト・シール(SSLシール) : SSL証明書の概要を表示できる。サイト・シールを設置するには、証明書の発行元が提供する専用のJavaScript or FlashなどをWebページに追加する必要がある。組織認証型の証明書ではサイト・シールが標準装備であることが多い。
  • マルチサーバ : 1枚の証明書を複数台のサーバにインストールできる。
  • フィーチャーフォン対応 : ガラケー対応。フィーチャーフォン向けのサービスでSSL証明書を利用する場合は、発行元の対応リストをあらかじめ確認しておく必要がある。
証明書の仕組
  1. クライアントからサーバへSSLアクセスの要求する。
  2. サーバは認証局秘密鍵で暗号化された電子証明書をクライアントへ返す。
  3. クライアントは認証局にアクセスし公開鍵を取得する(通常のWebブラウザには、よく利用される認証局の公開鍵はインストールされているため、認証局にアクセスしなくても公開鍵を確保することはできる)。
  4. 電子証明書を公開鍵で復号化して、その中にあるWebサーバの公開鍵を取得する。
認証構造
  • 階層型とメッシュ型があり、主に利用されているのは階層型。以下では階層型の説明を行う。
  • 認証局の公開鍵についての証明書と公開鍵自身も、その認証局の上位にあたる証明機関で作成され証明されている。この階層構造の頂点に立つ認証局がルート証明機関と呼ばれる。
  • Webサーバー側で保持している証明書が問題ない場合でも、上位の証明書(中間証明機関など)に問題があればルート証明機関の公開鍵を取得できないため、証明書として機能しなくなる。
証明書の購入手順
  1. 認証用のメール・アドレスを準備する
  2. 証明書署名要求(CSR)ファイルを作る
    • OpenSSLを利用する場合 : link
  3. 証明書発行を申し込む
  4. 証明書の代金を支払う
  5. 認証用メールを受け取って申し込みを承認する
  6. メールで納品された証明書をテキスト・ファイルに保存する
  7. サーバに証明書をインストールする
  8. Webサイトに証明書を割り当ててHTTPSを有効にする

参考ページ