SSLの概要とApacheへの導入

しょっちゅうするわけではないので、ちょこちょこ記憶の彼方にいってしまうので、色々まとめがてら、設定方法をメモします。

参考URL
八丁堀の旦那
ろば電子が詰まっている「opensslでRSA暗号と遊ぶ」
ろば電子が詰まっている「オレオレ証明書をopensslで作る(詳細版)」

大変勉強させていただきました。有難うございます。

前提知識(共通鍵暗号方式と公開鍵暗号方式)

SSLは「共通鍵暗号方式」と「公開鍵暗号方式」を組み合わせて利用している。

共通鍵暗号方式

特徴

共通鍵を使って、単一の鍵で暗号化と復号化を行う。
(送信側)→《共通鍵で暗号化》→ 送信 →《共通鍵で復号化》→(受信側)

メリット

仕組みがシンプルなので処理が早い。
双方のやりとりができる。

デメリット

一番最初の共通鍵の共有の際にセキュリティ上の問題が起こりやすい。
複数の相手の場合、(会社が違うなど)の場合はその相手分共通鍵が必要になる。

公開鍵暗号方式

特徴

公開鍵と共通鍵の2つ鍵を用いて暗号化と復号化を行う。
公開鍵と秘密鍵はペアになっており、片方で暗号化したものはペアの鍵でのみ復号化できる。

(送信側)→《公開鍵で暗号化》→ 送信 →《秘密鍵で復号化》→(受信側)

メリット

秘密鍵を鍵作成者のみしっかりと保管していれば、不特定多数の相手とも暗号かされたデータの受け渡しができる。

デメリット

基本的には公開鍵は公開するのもなので、一方通行のやり取りしかできない。
「非対称アルゴリズム」と呼ばれており、複雑な数学処理のため、重い。

サーバー側構築

Apacheに必要なもの

構築方法としては、

  1. SSLeay – Apache-SSL(パッチ)
  2. OpenSSL – Apache-SSL(パッチ)
  3. OpenSSL – mod_ssl(モジュール)

の3通りの構築の方法がある。
SSLeayが使えない場合があるので、一般的にはOpenSSLが使われることが多い。3が最も一般的。

構築手順

OpenSSLとmod_sslの組み合わせで構築する。

必要なものをインストール

mod_sslをインストールすると/etc/http/conf.d/ssl.confができる

証明書の作成

通常の証明書を作成する流れ

ssl証明書作成の流れ

作成時に入力が必要な項目。先に決めておくとベター。

opensslコマンドを使わないで証明書を作成

opensslをコマンドを使って証明書を作成

以上で、オレオレ証明書が完成しました。それぞれのファイルの中身は下記で確認することができます。

Apacheの設定

次に生成した証明書をApacheに設定していきたいと思います。通常の設定の方法と、VirtualHostを仕様している内容です。

基本設定

VirtualHostを併用している場合

VirtualHostを設定している場合、通常よりもいくつか追加修正する必要があります。

apache再起動

以上でSSLのサーバの設定が完了しました。

用語メモ
PKIとは公開鍵基盤のこと。簡単にいうと、証明書を正しく発行し、配布するシステムのこと。

拡張子.KEYは秘密鍵。(秘密鍵は拡張子はなんでもいい。今回は.keyにしている。)
「—–BEGIN RSA PRIVATE KEY—–」からはじまり、「—–END RSA PRIVATE KEY—–」で終わるファイル

拡張子.CSRとは、SSLサーバー証明書を発行するための署名要求(Certificate Signing Request)。
このファイルに含まれる情報を元に証明書が発行される。
「—–BEGIN CERTIFICATE REQUEST—–」からはじまり、「—–END CERTIFICATE REQUEST—–」で終わるファイル。

拡張子.CRTは証明書のこと。
「—–BEGIN CERTIFICATE —–」からはじまり「—–END CERTIFICATE—–」で終わるファイル

RSA暗号とは、公開鍵暗号方式の実装の一つ。

SNSでもご購読できます。

コメントを残す

*