NextCloudでファイル共有【その2】サーバの設定

 前の記事NextCloudでファイル共有【その1】サーバインストール手順ではNextCloudのインストール方法を紹介しました。さらにSSL対応や細かいサーバの設定を行ったのでその手順を紹介します。

 もくじ

SSL対応

★注意★私の場合は自宅内のローカルネットワークに独自ドメインを設定しているため、Let's EncryptにてSSL証明書を作成しました。個人のローカルエリアネットワーク内でサーバー証明書が櫃庄名場合はいわゆるオレオレ証明書でもいいでしょう。

①ApacheのSSLを有効化

 まずはApache2のSSLを有効化します。

(1)SSLのモジュールを読み込み

sudo a2enmod ssl

(2)default-ssl.conf の編集

/etc/apache2/sites-available/default-ssl.confを自分の環境に合わせて変更します。

   ServerAdmin xxx@yyy.xxx #変更
   ServerName xxx.yyy.zzz #追加
   DocumentRoot /var/www/html

(3)a2ensiteを実行

a2ensite default-ssl

(4)サービスの再起動

sudo systemctl restart apache2.service

②Let's EncriptでSSL証明書を取得

関連パッケージをインストールしてスクリプトを実行します。

sudo apt-get install letsencrypt python-certbot-apache
sudo letsencrypt run --apache

SSL設定後のエラー対処

 SSL設定後にNextCloudにadminでログインしたところ、セキュリティのエラーが出ていました。

①アクセス権限のエラー

メッセージの内容は下記です。
Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root.

対処:下記の3ファイルを変更しApacheを再起動

/etc/apache2/apache2.conf

172行目のAllowOverride NoneをAllowOverride Allに変更。

<Directory /var/www/>
  Options FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>
/etc/apache2/sites-available/000-default.conf

DocumentRoot /var/www/htmlの下に3行追加

<Directory "/var/www/html">
  AllowOverride All
</Directory>
/etc/apache2/sites-available/default-ssl.conf

DocumentRoot /var/www/htmlの下に5行追加

<Directory /var/www/html/>
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

apacheの再起動

sudo systemctl restart apache2.service

②Strict-Transport-Securityのエラー

The "Strict-Transport-Security" HTTP header is not set to at least "15552000" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips.

対処:下記のファイルを編集しApacheを再起動

/etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:443>
  ServerName lenovos9e.mongonta.net
    <IfModule mod_headers.c>
        Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
    </IfModule>
</VirtualHost>
apacheの再起動
sudo systemctl restart apache2.service

php.iniの設定

 こちらも、セキュリティ&セットアップ警告として出ていたので指示に従って変更しました。
 メッセージを読むとどうやらキャッシュの設定のようです。

The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:

対処:下記のファイルを編集

/etc/php/7.1/apache2/php.ini

 1780行目にある[opcache]のセクションを以下のように編集します。

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

おわりに

これでNextCloudがSSLで使えるようになりました。NextCloudを使ってファイル共有しましょう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です