[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:30987] Re: how to setup mod_ssl?



>  ApacheでSSL対応させようとlibapache-mod-sslをインストールしたので
> すが、セットアップ方法(証明書の作り方やhttpd.confの設定方法)がわ
> かりません。
> 
>     file:///usr/doc/libapache-mod-ssl-doc/html/
> 
> は情報が膨大過ぎて、何をどうすれば良いのかたどり着けません(^.^;)。
> どこかに、手順をまとめたもの等はありませんでしょうか?

libapache-mod-ssl-doc/README.Debian.gzにまとめられているようです。
以前、mod_sslを設定するために自分で翻訳したものを添付します。

----------------------------------------------------------------
MOD-SSLの為のAPACHEの設定方法

0.イントロダクション

mod_sslのみをインストールしただけでは、その機能を動作させるのに不十
分である。このモジュールはApacheに多くのディレクティブを追加するし、
SSLの機能を自動的に有効にしたり、無効にしたりする設定ユーティリティ
を書くことはとても難しい。
そのため、ここに古くさい方法ー手動ーでmod_sslを設定する方法を記述す
る。

1.証明書

まず最初に、あなたのサーバの証明書を持つことが必要である。このことに
付いての多くの一般的な説明は、以下の場所で入手可能な 
mod-ssl Documentation の中に見付けることがことが出来る。

     http://localhost/doc/libapache-mod-ssl-doc/html/

テスト用の証明書を作成するには、次のコマンドを入力する(root で)

     # mod-ssl-makecert

これはあなたにいくつかの質問を行った後、/etc/apache/ssl.*/server.*
の中に秘密鍵(private key)、証明書、そして証明書署名要求(CRL)を作成す
る。

2.グローバル・オプションの追加

まず、 /etc/apache/httpd.confを編集する。"LoadModule"記述子を探し、
そのリストの最後に次の行を付け加える。

       LoadModule ssl_module /usr/lib/apache/1.3/mod_ssl.so

あなたはおそらく、"setenvif"モジュールも有効にする必要がある。その場
所は LoadModule のリストにある(それは既にあるはず)ので、コメントを外
してほしい。

次に、"Listen"ディレクティブをさがして、もし見付からなければ次の行を
追加する。

       <IfModule mod_ssl.c>
       Listen 80
       Listen 443
       </IfModule>

これは通常のポート80番に加えてapacheに443番ポートを作る。Httpsは443番
ポートを使用するよう要求する。 <IfModule>...</IfModule>でディレクティ
ブを囲むこと、そして、apacheはたとえmod_sslが削除されても、使用する設
定は保持することに注意する。

次に、設定の最後の箇所の、ちょうど<VirtualHost>セクションの前にいき、
/usr/share/doc/libapache-mod-ssl-doc/mod-ssl.conf から設定の部分を
挿入する。これはmod_sslのための一般的な設定である。

3.バーチャルホストオプションの追加

それぞれのバーチャルホストには、設定できる多くのオプションがある。あな
たはSSLを有効にしたいそれぞれのバーチャルホストに、新しいバーチャルホス
トを追加する必要がある。それは <VirtualHost host.domain.com:443> とし
て指定され、SSLのオプションを追加することで、通常のバーチャルホストの
複製となる。

もし、バーチャルホストが無く、しかしたった一つだけのデフォルトサーバな
ら、この新しいバーチャルホスト<VirtualHost _default_:443> を呼ぶべき
である。

非IPホスティング(name based virtual hosting:IPアドレスを消費しないバ
ーチャルドメイン)はSSLを有効にしたバーチャルホストでは動かないので、そ
れぞれのSSLバーチャルホストには個別のIPエイリアスを持つことが必要であ
ると言うことに注意する。

通常、あなたはちょうど、次のようなオプションが必要である。

   <VirtualHost newvhost.domain.org:443>
   ...DocumentRoot, Logfile, ErrorLog のような通常のディレクティブを ...
   <IfModule mod_ssl.c>
   SSLEngine on
   SSLCertificateFile    /etc/apache/ssl.crt/server.crt
   SSLCertificateKeyFile /etc/apache/ssl.key/server.key
   SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
   </IfModule>
   </VirtualHost>

全ての設定可能なオプションは、mod_sslのマニュアルを見なさい。十分に注
釈されたバーチャルホストの例が /usr/share/doc/libapache-mod-ssl-doc/
sample-vhost.conf.gz にある。

4.APACHEのリロード

/etc/init.d/apache stop;/etc/init.d/apache startで apache の停止と
起動を行いなさい。/etc/init.d/apache reload または restart を使用して
も動かない。
もし全てがうまく行けば、https://your.web.server/ でHTTPSが有効になった
ホストに接続することが出来る。
-------------------------------------------------------------------
以上です。

-------------------------------
Sugiura Kazushi
kazushi@xxxxxxxxxxxxxx
-------------------------------