本日はMattermost, Apache2 と SSLを組み合わせてサーバを構築する際の参考情報のご提供です。
MattermostをAapache2と組み合わせてSSLで運用する方法は、公式ホームページに非公式情報として設定方法の説明があります。
この説明の中にはAapache2の詳細versionに対する記述はありません。
その中で、apache2のconfigurationファイルの設定として以下の記述があります。
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName mysubdomain.mydomain.com
ServerAdmin hostmaster@mydomain.com
ProxyPreserveHost On
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}
RewriteEngine On
RewriteCond %{REQUEST_URI} /api/v[0-9]+/(users/)?websocket [NC,OR]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]
<Location />
Require all granted
ProxyPass http://127.0.0.1:8065/
ProxyPassReverse http://127.0.0.1:8065/
ProxyPassReverseCookieDomain 127.0.0.1 mysubdomain.mydomain.com
</Location>
# Generated by Certbot
SSLCertificateFile /etc/letsencrypt/live/mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
詳細に試したわけではないのですが、上記方法はApache 2.4.8以降の設定方法となり、Apache 2.4.7までは証明書の設定部分を以下のよう変える必要があると思われます。
SSLCertificateFile /etc/letsencrypt/live/mydomain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mydomain.com/chain.pem
実際に、Apache2.4.6とLet’s Encyptで発行者した証明書を用いて、公式HPの情報をもとに設定するとサーバの起動は正常にできますが、Android版 MattermostアプリからログインしようとするとSSLのエラーが出てログインできません。
ちなみに、同じAndroidでもブラウザ等からのアクセスは問題なくできますし、windows版のアプリやブラウザからは何の問題もありませんので、インストール時に問題を発見しにくいです。
Mattermost + Apache2 + SSL での運用される際にはApacheの詳細バージョンに留意ください。
- ご注意
- 本情報は記事を執筆した時点での情報です。
- 本情報を使用した結果に対してFREEDOM CREATIONSでは一切の責任は負いません、あらかじめご了承ください。