Growiの使い勝手が非常に良かったので、環境を整えました。
やりたいこと
- 導入したGrowiサーバ、「IPアドレス:3000」ではなく「ドメイン名」でアクセスできるようにしたい。
- 既にapacheで稼働しているLychee(フォトアルバム)やZabbixは平行稼働させたい。
- ローカルとは言えSSL通信を行いたい。
やったこと
- hostファイル書き換え
- ローカルDNS登録
- これに即したSSL証明書をmkcertsで作成
- Apacheによるリバースプロキシー有効化
- 設定ファイル差し替え
- 動作確認
前提
以下の環境を導入済みです。
- Kubuntu Linux 20.04
- Apache 2.4
- Growi 5.1
手順
※ディレクトリ、ドメインなどは個人の環境に読み替えてください。
host書き換え
sudo vi /etc/hosts
追記内容
127.0.0.1 localhost
127.0.0.1 paddington.corn.wall paddington
# ※Ubuntuの環境では「127.0.1.1」となっていましたので、localhostと同じにします
127.0.0.1 chisataki.lyco.reco chisataki
# ※別ドメインで通信を行いたいので、この行を追加しました
DNS登録
今回、新たに「lyco.reco」というローカルドメインを作成して「chisataki.lyco.reco」で名前解決できるようにしました。
参照:
mkcertsによるローカルSSL証明書発行
mkcertsを導入したサーバで、以下を発行します。
mkcert -key-file lyco.reco.key.202208 -cert-file lyco.reco.cert.202208 lyco.reco chisataki.lyco.reco "*.lyco.reco"
この時に発行した証明書と秘密鍵をGrowiサーバの以下に格納します。
- /etc/certs → 証明書
- /etc/private → 秘密鍵
参照:
秘密鍵のシンボリックリンク化
証明書と秘密鍵を格納したサーバで
cd /etc/cets sudo ln -s lyco.reco.cert.202208 lyco.reco.cert cd /etc/private sudo ln -s lyco.reco.key.202208 lyco.reco.key # mkcertsの証明書は有効期限が3ヶ月と短いため、更新時にはリンクの貼り替えだけで済むようにあらかじめシンボリックリンクを設定します
としておきます。
リバースプロキシー有効化
sudo a2enmod proxy proxy_http proxy_wstunnel
sudo systemctl restart apache2.service
ログ格納ディレクトリ作成
sudo mkdir /var/log/apache/chisataki.lyco.reco
sudo chown -R www-data:www-data /var/log/apache/chisataki.lyco.reco
リバースプロキシー用apache設定ファイル作成
参考:
https://docs.growi.org/ja/admin-guide/getting-started/ubuntu-server.html
sudo vi /etc/apache2/sites-available/growi.conf
設定ファイル内容
※ServerNameやログなどは読み替えてください。
<VirtualHost _default_:80>
ServerName chisataki.lyco.reco
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost _default_:443>
ServerName chisataki.lyco.reco
CustomLog /var/log/apache2/chisataki.lyco.reco/access.log combined
ErrorLog /var/log/apache2/chisataki.lyco.reco/error.log
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
SSLCertificateFile /etc/certs/lyco.reco.crt
SSLCertificateKeyFile /etc/private/lyco.reco.key
RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:3000/$1 [P,L]
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
設定ファイル有効化
sudo a2ensite growi
設定ファイル反映
sudo apache2ctl configtest # → syntax OK を確認します sudo systemctl restart apache2.service
設定後、
「http://[ドメイン]」
にアクセスすることで
- https通信へのリダイレクト
- 指定したディレクトリにアクセスログが流れること
を確認しました。
コメントを残す