宅内オンプレだけではなくAWSでの運用も始めたredmine。こちらではドメインを取得するためmkcertではくLet's Encryptで証明書を取得します。

環境

  • OS:Ubuntu 20.04
  • Apache 2.4

手順

全て管理者権限で実施しました。

Let’s Encryptのcertbotをインストールします。

aptitude install certbot python3-certbot-apache

botの指示に従って証明書を取得します。

certbot --apache

ウィザードに従って設定するだけの非常に簡単な作業。その後、以下のファイルが作成されます。

/etc/apache2/sites-available/redmine-le-ssl.conf
# 既に作成しているバーチャルファイルの内容をコピーしてSSLの設定が追加されていました

SSL接続強化準備

以下のモジュールを有効にして再起動します。

a2enmod headers
a2enmod rewrite

ファイル編集

vi /etc/apache2/sites-available/redmine-le-ssl.conf
ファイルの内容
<VirtualHost _default_:80>
 RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# http通信を強制的にhttpsにリダイレクト
</VirtualHost>

<VirtualHost _default_:443>
servername servername
CustomLog /var/log/redmine/access.log combined
ErrorLog /var/log/redmine/error.log
# アクセスログ格納ディレクトリ
Alias /redmine /var/lib/redmine/public
<Location /redmine>
PassengerBaseURI /redmine
PassengerAppRoot /var/lib/redmine
Require all granted
</Location>

# redmineの設定

  SSLEngine on
    SSLProtocol All -SSLv2 -SSLv3  -TLSv1
     SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder On 
SSLOptions +StrictRequire
Header set Strict-Transport-Security: "max-age=31536000; includeSubDomains; preload"

# 弱いSSLを無効化し、HSTSを有効化しています

SSLCertificateFile /etc/letsencrypt/live/serverdomain/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/serverdomain/privkey.pem

# let's encryptの設定通りです
#Include /etc/letsencrypt/options-ssl-apache.conf

# バーチャルファイル上で用いる暗号化強度を明示しているのでlet's encryptの設定はコメントアウトしています
        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^server\.domain
        RewriteRule ^/$ https://server.domain/redmine/ [R]

# https://server.domainをhttps://server.domain/redmine にリダイレクトします
</VirtualHost>

設定を反映します。

cd /etc/apache2/sites-enable
unlink redmine.conf
# 既存のconfファイルを無効化
apache2ctl configtest
# syntax OKを確認
systemctl restart apache2

この設定後、SSL強度チェックで

A+を獲得しました。