- openssl をインストール
==================
sudo apt-get install openssl
- 秘密鍵を作る
==================
仮に server.key としよう。鍵の長さは 4096 バイト以上にすること。そうでないと最近のブラウザでは暗号が弱くて SSL の接続の段階で拒否られる。
# Do not use 2048 byte key - It does not work on modern browsers.
sudo openssl genrsa -des3 -out server.key 4096
Apache2 を起動するとき秘密鍵のパスワードを毎回聞かれないようにするには以下のようにする
# Do not use 2048 byte key - It does not work on modern browsers.
sudo openssl genrsa -out server.key 4096 # e.g. no password
- 公開鍵の署名リクエストを作る
==================
server.csr としよう。
sudo openssl req -new -key server.key -out server.csr
- 署名付の証明書(公開鍵)を作る
==================
server.crt としよう。有効期間はオレオレなので 10年くらいでいいだろう^^;
sudo openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
- 適切なディレクトリにコピー
==================
※コピー先のパーミッションに注意
sudo cp server.crt /etc/ssl/certs/; sudo cp server.key /etc/ssl/private/
- /etc/apache2/sites-available/default-ssl を編集
==================
sudo vi /etc/apache2/sites-available/default-ssl
以下の 2行をコメントアウト:
# 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
- Apache2 の SSL のモジュールを有効にする
==================
sudo a2enmod ssl
sudo a2ensite default-ssl
- Apache2 を再起動する
==================
秘密鍵のパスワードを聞かれるので答える
sudo service apache2 reload
- オプション1:常に SSL でアクセスさせる
==================
sudo a2enmod rewrite
sudo vi /etc/apache2/sites-available/default
/etc/apache2/sites-available/000-default に以下の 3行を追加
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
- オプション2: +ExecCGI を追加
==================
sudo vi /etc/apache2/sites-available/default-ssl