apache-ssl設定
〜CentOS4 サーバ編〜 |
HTTPサーバのapacheバージョン1にsslを組み込むには、mod_sslを別途組み込む必要がありましたが、apache2はデフォルトで、SSL/TLS対応になっているので、作業が多少楽になりました。 では実際に設定していきます。
Index
〜apache-ssl設定〜 |
1. OpenSSLインストール状況確認 | 2. apacheのインストール状況確認(--enable-so,--enable-ssl) | 3. 証明書&秘密鍵格納用ディレクトリの作成(ssl.crt,ssl.key) | 4. 秘密鍵の作成(server.key) | 5. 自己証明書の作成(server.crt) | 6.SSL起動(startssl)
本環境では、OpenSSLがインストールされていたので、そのまま使用しましたが、インストールされていない場合、もしくは入れ直したい場合は、OpenSSLインストールをご参照下さい。
インストールされているかどうかについての確認方法は以下の通りです。
<rpmコマンドの場合> <yumコマンドの場合> |
OpenSSLをapacheで動かす為には、apacheをコンパイルする際にDSO対応させておき、sslモジュールを静的に組み込んでおく必要があります。
本環境では、apacheインストールの際に既にDSO対応とSSLモジュールの組み込みをしている為、この章は飛ばしていますが、もしapache側で対応していない場合は、対応する必要があ ります。
具体的な対策例としては以下の通りです。
※ssl対応でインストールしていたかについての確認は、/usr/local/apache2/conf配下にssl.confが存在しているか否かでも判断可能です。
<apache ssl,DSO対策方法> # cd /usr/local/src |
apacheに関する引数の詳細については、apache configure引数についてをご参照下さい。
SSL対応する事により、/usr/local/apache2/conf/httpd.conf には、以下のようにsslモジュールが読み込まれている事が確認できます。
# cat /usr/local/apache2/conf/httpd.conf |
また、ここで呼び出している/usr/local/apache2/conf/ssl.conf には、通常以下の通り、証明書、秘密鍵を格納するディレクトリが指定されています。
# cat /usr/local/apache2/conf/ssl.conf |
格納場所やファイル名を変更したい場合は、上記内容を変更すれば可能ですが、今回はデフォルト環境に合わせた(このままの)状態で進めます。
では、/usr/local/apache2/conf配下に証明書格納用(ssl.crt)と秘密鍵格納用(ssl.key)ディレクトリを作成します。
# mkdir /usr/local/apache2/conf/ssl.crt |
秘密鍵格納用ディレクトリにうつり、秘密鍵を作成します。作成にはopensslコマンドを利用します。
# cd /usr/local/apache2/conf/ssl.key |
opensslのオプションについてですが、今回の例では、公開鍵の暗号化方式にRSA,暗号化方式を3DES,出力ファイルをserver.key,鍵の長さを1024ビットに設定しています。
上記作業にてserver.keyという秘密鍵ファイルが作成されました。
自己証明書格納用ディレクトリにうつり、自己証明書を作成します。作成には秘密鍵同様、opensslコマンドを利用します。
# cd /usr/local/apache2/conf/ssl.crt |
opensslのオプションについてですが、頭から順番にそれぞれCSR(署名要求)の作成、証明書要求ファイルの作成証明書要求ファイルの形式をX509に指定、有効期限の指定、秘密鍵ファイルの指定、自己証明書ファイル名の指定といった設定をしています。
上記作業にてserver.crtという自己証明書ファイルが作成されました。
ようやくSSL起動起動の準備ができました。apacheが既に起動している場合は、一旦プロセスを停止します。その後、apacheのstartオプションではなく、startsslオプションを実行します。
# /usr/local/apache2/bin/apachectl stop <- apacheが起動している場合のみ Server www.example.com:443 (RSA) Ok: Pass Phrase Dialog successful. |
パスワードは4.の際に入力したパスワードを利用します。プロセス起動時にパスワードを聞いてこない設定方法もあ
りますが、それについてはあとで掲載したいと思います。
apacheのssl設定作業はこれで終了です。