この記事の続きです。
ここでは、mkcertで作成したローカル証明書をredmineサーバに入れておきます。
また、
- httpを強制的にhttpsにリダイレクト
- http://ip or DNS名 のアクセスをhttps://ip or DNS名/redmineへとリダイレクトする
設定も同時に入れ込みます。
redmineサーバ上での設定
必要なモジュールの有効化
a2enmod ssl
a2enmod rewrite
systemctl restart apache2
ss -lntp
# 443ポートがLISTENされていることを確認します
証明書ペアの格納
mkdir /etc/certs/
mkdir /etc/private/
その後、
/etc/certs → SSL証明書
- corn.wall.crt.202204
/etc/private/ → 秘密鍵
- corn.wall.key.202204
をそれぞれ格納します。
証明書ペアのシンボリックリンク化
後々のメンテナンスを考えて、証明書をシンボリックリンク化します。
cd /etc/certs/
ln -s corn.wall.crt.202204 corn.wall.crt
cd /etc/private/
ln -s corn.wall.key.202204 corn.wall.key
Virtualファイル記載
cd /etc/apahce2/site-available/
cp -pi redmine.conf /path/to/backup/redmine.conf.org
vi redmine.conf
redmine.confの内容
<VirtualHost _default_:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#http通信を強制的にhttpsにリダイレクト
</VirtualHost>
<VirtualHost _default_:443>
SSLEngine on
SSLProtocol All -SSLv2 -SSLv3 -TLSv1
SSLCertificateFile /etc/certs/corn.wall.crt
# 証明書
SSLCertificateKeyFile /etc/private/corn.wall.key
# 秘密鍵
RewriteEngine On
RewriteCond %{HTTP_HOST} ^penzance\.corn\.wall
RewriteRule ^/$ https://penzance.corn.wall/redmine/ [R]
# https://penzance.corn.wallへのアクセスをhttps://penzance.corn.wall/redmine/にリダイレクト
Alias /redmine /var/lib/redmine/public
CustomLog /var/log/redmine/access.log combined
ErrorLog /var/log/redmine/error.log
<Location /redmine>
PassengerBaseURI /redmine
PassengerAppRoot /var/lib/redmine
Require all granted
</Location>
</VirtualHost>
設定反映
apache2ctl configtest
# SyntaxOKを確認
systemctl restart apache2
再起動後、
- redmineの通信がhttpsで行えること
- ホスト名でアクセスしても/redmine/に移動すること
を確認しました。
補足とまとめ
- セキュリティソフトによっては、このローカル認証局を「信頼できない」としてブロックする場合があります。その時はその設定を解除します。
- また、mkcertsは開発用途なので外に出ていけないローカル環境での運用が前提です。
- そのためか証明書の有効期限は3ヶ月。この運用をもっと楽にするのが今後の目標です