nextcloudにドメイン名でアクセスできない場合の対処方法

DNS

約 8 分で読めます。

nextcloudにドメイン名でアクセスしたら「信頼できないドメインを介したアクセス」って表示された…
nextcloudに同じ家庭Wi-Fiからアクセスしたらルーターの設定画面が表示された…

これらを解決します。

前提として、apache側のドメイン名設定は実施済とします。
未設定の方はこちらを参照ください。

nextcloud側の設定

nextcloudの設定ファイルに信頼できるドメイン名のリストがあるので、追記しましょう。

yasu@raspberrypi:~ $ sudo nvim /var/www/html/nextcloud/config/config.php

# 以下config.phpの一部
  array (
    0 => '192.168.1.20',
    1 => 'yasufumi-yokoyama.gq',  # <- これを追記
  ),

nextcloud側はこれで終了です。
PHPなので、apache再起動は必要ありません。

ドメイン名でアクセスするとルーターの画面が表示される場合の対応

私の環境でyasufumi-yokoyama.gqにアクセスすると、以下のように表示されてしまいました。

解決するためには、yasufumi-yokoyama.gqをローカルIPアドレスへの直接変換が必要です。
※グローバルIPアドレスはルーター自身のIPアドレスであるため、ルーター自身の設定画面を表示してしまいます。

そのために以下の対策を行います。
 ・DNSサーバーを立てる
 ・yasufumi-yokoyama.gqのみ↑で立てたDNSサーバーに問い合わせるようにする

DNSサーバーを立てる – dnsmasq –

せっかくRaspberry Pi 4があるので、そこにDNSサーバーを入れてしまいましょう!
使いやすいDNSサーバーとしてdnsmasqがありますので、これを使います。

# dnsmasqをインストール
pi@raspberrypi:~ $ sudo apt install dnsmasq

# dnsmasqはyasufumi-yokoyama.gqのみ名前解決し、それ以外は通常のDNSサーバーに委譲する
pi@raspberrypi:~ $ sudo nvim /etc/hosts

# 以下2行をhostsの末尾に追記する
# wwwありとなし、両方のドメイン名に対応させる
192.168.1.20 yasufumi-yokoyama.gq
192.168.1.20 www.yasufumi-yokoyama.gq

# dnsmasqを再起動
pi@raspberrypi:~ $ sudo systemctl restart dnsmasq

ルーター設定の変更

お次はルーター側の設定です。
通常ルーターがDNSサーバーになっているので、yasufumi-yokoyama.gqへの問合せはRaspberry Pi 4に問い合わせるように設定します。

私の自宅ではRS-500KIという機器を使っていて、ここに設定がありました。
 トップページ → 詳細設定 → DNS設定

↑のエントリ1に
 ドメイン名: yasufumi-yokoyama.gq
 プライマリDNSサーバアドレス: Raspberry Pi 4のIPアドレス
を設定してやれば良さそうです。

このDNSサーバアドレスにはIPv6アドレスしか設定できないようですので、Raspberry Pi 4のIPv6アドレスを調べます。

pi@raspberrypi:~ $ ifconfig
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.20 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::6637:6bde:4579:381b prefixlen 64 scopeid 0x20<link>
inet6 2408:211:b0:dd00:ffef:f44f:9e78:bad7 prefixlen 64 scopeid 0x0<global>
ether dc:a6:32:bf:f5:d4 txqueuelen 1000 (Ethernet)
RX packets 126 bytes 17554 (17.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 81 bytes 12776 (12.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

このなかの2408から始まる文字列がIPv6です。
先ほどのルーター設定画面に入力して設定します。

確認のためアクセスしてみました。
期待通りに動作していますね!

しかしここでhttp://www.yasufumi-yokoyama.gqにアクセスしたときhttpsにならずにhttpのまま画面が表示されてしまいました。

これを解決するためにapache2の設定を変更します。

pi@raspberrypi:~ $ sudo nvim /etc/apache2/sites-enabled/000-default.conf

# 以下000-default.confの中身
<VirtualHost *:80>
RewriteEngine on
RewriteCond %{SERVER_NAME} =yasufumi-yokoyama.gq
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
# ↓この2行を追記
RewriteCond %{SERVER_NAME} =www.yasufumi-yokoyama.gq
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

# apache2再起動
pi@raspberrypi:~ $ sudo systemctl restart apache2

これでhttp://www.yasufumi-yokoyama.gqもhttpsに変換されるようになりました。

終わりに

いかがでしたか。

もしRaspberry Piをnextcloudサーバーにしようとしている方はこの記事が参考になります!

Comments

タイトルとURLをコピーしました