手順としては次の通り。
- openssl をインストール。
# sudo apt-get install openssl
- 秘密鍵を作る(仮に server.key としよう)。
# sudo openssl genrsa -out server.key 4096 (パスワードなしの場合、2048 バイトのキーは弱すぎて証明書としてはもはや無効)
# sudo openssl genrsa -des3 -out server.key 4096(パスワードありの場合、2048 バイトのキーは弱すぎて証明書としてはもはや無効)
- 公開鍵を作る(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
- 適切なディレクトリにコピー(コピー先のパーミッション注意)。
# cp server.crt /etc/ssl/certs/; cp server.key /etc/ssl/private/
- /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
- Apache2 の SSL のモジュールを有効にする。
# sudo a2enmod ssl
# sudo a2ensite default-ssl
- 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