Apache2の商用SSL

ssl用の設定ファイルを作成する。

aptitude install apache2-doc
cp /usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-ssl.conf.gz /etc/apache2/sites-available/
cd /etc/apache2/sites-available/
zcat /etc/apache2/sites-available/httpd-ssl.conf.gz > /etc/apache2/sites-available/443

/etc/apache2/sites-available/sslに設定を書き込む SSLのキーを保存するディレクトリへ移動する。

cd /etc/apache2/ssl

RSAキーを作成する。

openssl genrsa -des3 -out sugio-garden.com.key 2048

パスフレーズを尋ねられるので、適当なパスフレーズを入力する。

RSAキーを元にCSRを作成する。

openssl req -new -key sugio-garden.com.key -out sugio-garden.com.csr

対話式でキーを作成する。

Wild Cardに対応させる場合には、CSR作成の際、コモン・ネームを「*.foo.com」に設定する。

作成された証明書を認証局に送る。ここではsugio-garden.com.csrの中身。 送信証明書の名前を変えておく。

mv sugio-garden.com.csr sugio-garden.com.csr.org

帰ってきた証明書をsugio-garden.com.csrとして保存する。 Apache2のSSLサイト用の設定ファイルを編集する。

SSLCertificateFile /etc/apache2/ssl/sugio-garden.com.csr
SSLCertificateKeyFile /etc/apache2/ssl/sugio-garden.com.key

SSL適用サーバーの起動時にパスフレーズを入力しないようにする。これを行っておかないと、SSL対応Apache2の起動の度に、パスフレーズが必要となる。

openssl rsa -in sugio-garden.com.key -out sugio-garden.com.key

認証局から帰ってきたファイルを指示通り処理する。

モジュールの追加

a2enmod ssl

サイト設定の追加

a2ensite 443

ここでの443は設定ファイル名

Apache2で動作試験をする。httpsでアクセスする。NameVirtualhostの記載がないと、SSL_ERROR_RX_RECORD_TOO_LONGとかのエラーが発生して、接続できない。

vi 設定ファイル名

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ・・・・
        NameVirtualhost *:443
        ・・・・
    </VirtualHost>
</IfModule>

秘密鍵のパーミッションを変更する。

chmod 600 秘密鍵(SSLCertificateKeyFile)のパス