For Want Of A Better Word

SSL、サーバー証明書、クライアント証明書 まとめ

      2015/04/19

なんかごちゃごちゃしてきたので整理。

・SSL
・サーバー証明書
・クライアント証明書

まずは定義

SSL

インターネットなどのTCP/IPネットワークでデータを暗号化して送受信するプロトコル(通信手順)の一つ。
~~~~~~~~~~
~~~~~~~~~~
SSLはTCPやUDPと同じ、いわゆるトランスポート層のプロトコルで、TCPの代替として利用することができるため、HTTPに限らず様々な上位層のプロトコルと組み合わせて使用され、インターネットにおける汎用的な通信の暗号化方式として定着している。

<引用: http://e-words.jp/w/SSL.html>

ふむふむ、TCP層だから、httpsとかsshとか、上位層プロトコルと組み合わせて、色んな所ででてくるんだね。

サーバー証明書

Webサイトの身元の証明やSSLによる通信の暗号化に使われるデジタル証明書。

サーバーの運営元の存在をCA(認証局)が保障してくれる!
あとSSL通信の暗号化にも使える!

クライアント証明書

コンピュータを利用している個人や組織の証明を行うための公開鍵証明書の一種で、クライアントとサーバが通信する際にクライアント側が提示するもの。

先のサーバー証明書に対して、ユーザー側(クライアント)の存在保障をする、証明書。

落ち着けば分かりやすい。そのままでした。

そもそもなんで証明書が必要なんだっけ?

インターネット上では、本人確認が難しい!!成りすましが横行しちゃう。
現実では、本人と身分証明書と印鑑とかで証明・確認する形式が成り立っているけど、インターネット上では、「ID/パス」ぐらいしかない。
でも「ID/パス」も漏れたり、総当たりされたら、成りすましされちゃう。

そこで、現実の身分証みたいのが、あるとよいねってことで、証明書が利用されている。
証明書を作成するに当たり、暗号化技術と電子署名が利用されていて、偽造が困難になっている。困難というのは、計算を繰り返せばいずれ出来るのだけれど、それが非現実的な数値(兆年とかの単位)なので、安全とされているというだけ。コンピータが進化すれば、簡単に解読できるかもしれない。

現実と同じように、一般的な信頼を受けた機関(symantecとか、geotrustとか)が発行している。
ただしここもいずれ信用を失う日が来るかもしれない。と

じゃあ、WEBサイトでは実際どうやって利用するの?

サーバー証明書

これは、やったことあるからわかる。
証明書をしかるべきサイトで購入して、OpenSSL、mod_sslを入れておいてWebサーバ(apache)に設定する。

ユーザーはhttpsでアクセスしたときに、暗号化の恩恵と、証明書を受領してその中身を見ることが出来る。たいていブラウザが自動で、デフォルトで組み込まれている認証局データをもとに、どこから発行されているか確認してくれている。
その認証局が怪しい所だと、「ここは怪しいですよ」って言ってくれる。

クライアント証明書

これを知らない。

[参考]

流れを見ると、

  • apacheの設定を変更して、クライアント証明書を要求するように変更。

SSLVerifyClient require

  • そうすると、クライアント証明書が要求されるようになる。
  • さらにapacheとか、プログラムとかでどの証明書だったらいいようにするかを決める。

SSLVerifyClient require
SSLRequire ( \
%{SSL_CLIENT_S_DN_OU} eq “証明書名” \
)

from :http://qiita.com/tukiyo/items/b5e8b3efce800b0fd269

フーム。個人じゃまで特定しなくても、共通クライアント証明書みたいなレベルで良ければ、配布も1ファイルでいいし。便利かも。有効期限とかあるから、そのたび更新は必要だけれども。

 - apache, インフラ, 意味を調べた言葉, 違い

  関連記事

php-logo
文字セット 文字コード 文字エンコーディング 違い

http://www.studyinghttp.net/charset ■文字セ …

no image
WEBフォント

http://thinkit.co.jp/story/2011/08/18/22 …

no image
レキシカルスコープ(静的スコープ)

所謂普通グローバルじゃないスコープ。 関数構造から決まるのでレキシカル(構文)ス …

no image
ポーリング

「定期的にサーバーにアクセスして最新情報を得る」方法

lgi01a201309210900
Linux 立ち上がっているサービス 空いているポートを確認する。

■立ち上がっているサービスの状態確認 コマンド [crayon-58455e82 …