Ubuntu 9.04 で、Apache2 の SSL を有効にする(オレオレ証明の設定方法)。

手順としては次の通り。
  1. openssl をインストール。
    # sudo apt-get install openssl
  2. 秘密鍵を作る(仮に server.key としよう)。
    # sudo openssl genrsa -out server.key 4096 (パスワードなしの場合、2048 バイトのキーは弱すぎて証明書としてはもはや無効)
    # sudo openssl genrsa -des3 -out server.key 4096(パスワードありの場合、2048 バイトのキーは弱すぎて証明書としてはもはや無効)
  3. 公開鍵を作る(server.csr としよう)。
    # sudo openssl req -new -key server.key -out server.csr
  4. 署名付の証明書を作る(server.crt としよう。有効期間はオレオレなので 10年くらいでいいだろう^^;)。
    # sudo openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
  5. 適切なディレクトリにコピー(コピー先のパーミッション注意)。
    # cp server.crt /etc/ssl/certs/; cp server.key /etc/ssl/private/
  6. /etc/apache2/sites-available/default-ssl を編集する。
    # sudo vi /etc/apache2/sites-available/default-ssl

    # コメントアウト
    # SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
    # SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

    # 以下の2行を追加
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
  7. Apache2 の SSL のモジュールを有効にする。
    # sudo a2enmod ssl
    # sudo a2ensite default-ssl
  8. Apache2 を再起動する(秘密鍵のパスワードを聞かれるので答える)。
    # sudo /etc/init.d/apache2 force-reload && sudo /etc/init.d/apache2 restart
おまけ-SSL を常に有効にするには:
# sudo a2enmod rewrite
# sudo vi /etc/apache2/sites-available/default

# これらの行を <VirtualHost *:80>~</VirtualHost> の間の最後に入れる
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
あとは、
# sudo vi /etc/apache2/sites-available/default-ssl
で、+ExecCGI とか追加する。
トラックバック URL: https://perltips.twinkle.cc/trackback/344