CentOS+ApacheにSSLを組み込む方法

SPONSORED LINK

Pocket

ssl_top

さてACTION*PADがらみでSSLに挑戦中。以下、作業ログ。SSLを自分で仕込むのは初めてなので突っ込みどころがあればコメント欄にて・・・。

■ このエントリーの目的

セキュリティ関連は細かい点が非常に大事ですが、ざっくり概要を知らないと手もつけられないので今回はなるべく簡潔に。

なお、対象は大企業ではなくて、個人や零細企業がコストを抑えて導入したい場合を想定しています。

■ 作業の全体像

作業の手順は以下のとおりです。

  1. SSLについて理解する
  2. SSLの認証局を選びます
  3. サーバ側で秘密鍵とCSR(Certificate Signing Request)ファイルを作ります
  4. CSRを認証局に渡してCRT(Certificate)ファイルをもらいます
  5. Apacheの設定&再起動
  6. テストして完了

ではそれぞれの手順について以下に詳しく。

■ SSLについて理解する

SSLって何?という人はここらへんからどうぞ。もうわかっている方は次のステップへ。

■ SSLの認証局を選びます

SSLの認証局はいろいろあって、価格や手続きもいろいろです。有名なのはベリサイン、ジオトラストでしょうか。

なお、よく選ぶ基準として、価格、期間の他に、(1)ケータイにどこまで対応すべきか?、(2)企業の実在証明までやるか?があがってきますが、ここでは「ある程度新しいケータイしか視野にいれない」「実在証明は大事だけどお金かかるから・・・」ということで安いところを選びます。以下は参考です。

» SSL証明書はプロバイダーによって何が違いますか?|ホームページに関するQ&A|ホームページ制作マッチング

というわけでジオトラストのRapidSSLをえいや!で選びます。

» SSL 証明書|ジオトラスト RapidSSL事業部

いまだとRapidSSLで1年31ドルですね。円高なのですでにいい感じですが、ここでは実験なんでさらに安いFreeSSLを選びます。安いというか無料です。ただ、30日間限定のトライアル用です。

» FreeSSL | トライアル SSL 証明書

■ サーバ側で秘密鍵とCSR(Certificate Signing Request)ファイルを作ります

認証局も決まったのでサーバー側の設定に移ります。参考にしたのは次のサイト。

最近のCentOSだとmod_sslもopensslも最初から入っているのでざっくり次のコマンドを実行しまくります。

# cd /etc/httpd/conf/ssl.key (ない場合は作る)
# openssl genrsa -des3 -out server.key 1024(パスワードは覚えておく)
# chmod 400 server.key
# openssl req -new -key server.key -out server.csr (いろいろ聞かれるので適切に入力)
# chmod 400 server.csr

なお、csrを作るときの「Common Name」はSSLにしたいドメイン名を入れます。僕の場合、「actionpad.jp」にしています。「www.actionpad.jp」と「actionpad.jp」は別物なので注意です。ちなみにactionpad.jpの場合はwww.actionpad.jpに来たアクセスは全部actionpad.jpに転送することで一つにまとめています。

これで完了です。なお、CSRを作ったときの情報はあとで必要になるのでメモっておきましょう。

■ CSRを認証局に渡してCRT(Certificate)ファイルをもらいます

ここまで来たらRapidSSLから証明書をもらえるように申請します。お申込みは以下のページの右下、「お申し込みフォームへ」から。

» FreeSSL | トライアル SSL 証明書

特に迷うところはないかと思いますが、プラン選択では「FreeeSSL」を、CSRはserver.csrの中身を(点線部分もちゃんとね)入力します。またここで「admin@(コモンネーム)」のメールアドレスが必要になりますのでちゃんとメールが届くように設定しておきましょう。僕の場合は「admin@actionpad.jp」です。

申請してちょっと待てば(1日~2日)、メールでCRTが送られてきます。

■ Apacheに秘密鍵とCRTを組み込みます

もらったCRTは/etc/httpd/conf/ssl.crt/server.crtにコピーして「chmod 400 server.crt」しておきます。

次に/etc/httpd/conf.d/ssl.confを編集して以下のように設定します。

DocumentRoot "(actionpad.jpへのPath)"
ServerNmae actionpad.jp:443
...
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
...
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
...

あとはApacheを再起動してOKです。なお、再起動時に秘密鍵のパスワードを聞かれます。これがいやなら(ある程度の危険があることを理解しつつ)次のコマンドで秘密鍵からパスワードを削除できます。

# cd /etc/httpd/conf/ssl.key
# mv server.key server.key.original
# openssl rsa -in server.key.orginal -out server.key(パスワードを入力)

再度Apacheを再起動してみてください。もう何も聞かれないはずです。

■ テストして完了

最後に「https://」付でアクセスしてみてブラウザに鍵がついていればOKです。

ssl_ap

↑ 完了!やったね!

以上、SSLを組み込む手順を簡単に説明してみました。他にもワイルドカードとかいろいろあるのですが、全体的な手順はおわかりいただけたかと・・・。まずはこの手順に慣れてみて、さらに複雑な設定をこなしてみてください。

ツイッターもやっています!

SPONSORED LINK

  1. No comments yet.

  1. No trackbacks yet.