Nextcloudサーバーの再構築…HTTPS対応、Tailscaleの利用

******************************************************************************************************************
ポイント:
NextcloudサーバーのHTTPS化不成功の原因は、既にWebサーバー(Apache2)が存在していたから
Tailscaleが正しく動作しなかったのは、NextCloudサーバーの管理者ユーザ設定が出来てなかったため
******************************************************************************************************************

Webサーバー(Apache2)の電源を落とし、NextCloudサーバーのHTTPS対応を実行した。
HTTPS化は、Tailscaleを利用することにした。
NextCloudサーバーの導入は、Nextcloudサーバー1と同じ手順。

1.IPアドレスの固定
1-1 IPアドレスの確認と変更・固定
NetworkManagerを使用して、IPアドレスを固定します。
・NetworkManagerのインストール・実行
・nmcliコマンドにより、アクセスポイント追加、IPアドレスの固定
を実行します。

1-2 固定したIPアドレスの確認
$ sudo nmcli connection show
[sudo] password for takashi6:
NAME UUID TYPE DEVICE
eth0 42f5a5b9-9341-4df0-b1ae-cf094653e0a6 ethernet eth0
lo 9a28b7dd-adaa-4a8a-847b-b673d8c6da53 loopback lo

$ ip a
1: lo:
inet 127.0.0.1/8 scope host lo
2: eth0:
inet 192.168.0.**/24 brd 192.168.0.255
3: wlan0:
inet 192.168.0.2/24

2.Nextcloudのインストール
2-1 snapのインストール…コマンド実行後の表示は省略
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install snapd

$ sudo snap install core
core 16-2.61.2 from Canonical? installed

2-2 nextcloudのsnapインストール
$ sudo snap install nextcloud
nextcloud 27.1.6snap1 from Nextcloud? installed

2-3nextcloudの動作確認
$ sudo snap start nextcloud
Run service command "start" for services ["apache" "logrotate" "mysql" "nextcloud-cron" "nextcloud-fixer" "php-fpm" "redis-server" "renew-c

3.nextcloudへのアクセス
Window端末のブラウザにて、http://<RaspberryPiのIPアドレス(192.168.0.**)> にアクセスする。
ログイン画面が表示。

4.ルーターのポートフォアティング設定
・Webサーバーに開放していた、ポート22,53,80,110,443をNextCloudサーバーへ開放
・NextCloudサーバーに開放していた、ポート81,444,3389を閉じる。

========================================================================================
NextcloudサーバーのHTTPS対応については、下記のような作業ミスがあった。

① Tailscaleの導入、NextCloudサーバーのHTTPS化失敗
② 特定ドメインの設定失敗

*失敗の原因は、うっかりして、Webサーバー(Apache2)の電源を切ってなかったこと
*Wjndows端末からNextCloudサーバーにアクセスした時、ログインして管理者ユーザーを作成しなかったこと。

以下に原因調査の結果・対応を記す
========================================================================================
<再度の実行>
1.Nextcloudサーバーの起動再確認
$ sudo snap start nextcloud
Run service command "start" for services ["apache" "logrotate" "mysql" "nextcloud-cron" "nextcloud-fixer" "php-fpm" "redis-server" "renew-c Started.

2.Tailscaleのインストールおよびログイン再確認
2-1 Tailscaleのパッケージ署名キーとリポジトリ追加
$ curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/kinetic.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/kinetic.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

# Tailscale packages for ubuntu kinetic
deb [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg] https://pkgs.tailscale.com/stable/ubuntu kinetic main

2-2 Tailscaleインストール
$ sudo apt-get update
$ sudo apt-get install tailscale

tailscale is already the newest version (1.66.4).
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

2-3 マシンのネットワーク接続とブラウザで認証
$ sudo tailscale up

2-4 IPv4アドレス確認
$ tailscale ip -4
100.83.234.80

3.HTTPS化
3-1 NextCloudサーバーに対して
$ sudo tailscale serve --bg --https=443 80
Available within your tailnet:

https://raspi7.tail<乱数>.ts.net/

|-- proxy http://127.0.0.1:80

Serve started and running in the background.
To disable the proxy, run: tailscale serve --https=443 off

$ sudo nextcloud.occ config:system:set overwriteprotocol --value 'https'
Nextcloud is not installed - only a limited number of commands are available

There are no commands defined in the "config:system" namespace.

~$ tailscale serve status
https://raspi7.tail<乱数>.ts.net (tailnet only)
|-- / proxy http://127.0.0.1:80

$ sudo nextcloud.occ config:system:set trusted_domains 1 --value=raspi7.tail<乱数>.ts.net
There are no commands defined in the "config:system" namespace.

*NextcloudサーバーはTailscaleネット上のアドレスが明確になったのに、特定ドメインに、TailscaleでのNextCloudサーバーのDNSがなぜ設定できないの?
下記のような調査の結果、
1.snap list
2.nextcloud.occ status
3.nextcloud.occ list
Nextcloudの管理者アカウントが設定されてなく、NextCloudサーバーが正しくインストールされてなかったことが原因と判明

4.Nextcloudの管理者アカウントを設定する
$ sudo nextcloud.manual-install (アカウント名) <パスワード>
Nextcloud was successfully installed

5.Tailscaleのレバースプロキシ下でNextcloudを動かす設定(HTTPS化)
$ sudo nextcloud.occ config:system:set overwriteprotocol --value 'https'
System config value overwriteprotocol set to string https

$ tailscale serve status
https://raspi7.tail<乱数>.ts.net (tailnet only)
|-- / proxy http://127.0.0.1:80

6.信頼できるドメインの現状
$ sudo nextcloud.occ config:system:get trusted_domains
localhost

7.信頼できるドメインの設定と確認
7-1 下記の2つのドメインを設定
$ sudo nextcloud.occ config:system:set trusted_domains 1 --value=raspi7.tail<乱数>.ts.net
System config value trusted_domains => 1 set to string raspi7.tail<乱数>.ts.net
$ sudo nextcloud.occ config:system:set trusted_domains 2 --value=tfujiwara.work
System config value trusted_domains => 2 set to string tfujiwara.work

7-2 確認
takashi6@raspi7:~$ sudo nextcloud.occ config:system:get trusted_domains
localhost
raspi7.tail<乱数>.ts.net
tfujiwara.work

7-3 NextCloudサーバーへの接続確認(LAN内外のデバイスから)
*同じLAN内のスマホ(Tailsnetにログイン済)からraspi7.tail<乱数>.ts.netにhttpsでアクセスOK
*LAN外のスマホ(Tailsnetにログイン済)からraspi7.tail<乱数>.ts.netにhttpsでアクセスOK

*PCからraspi7.tail<乱数>.ts.net/にhttpsでアクセスできない…httpなら接続可
==============================================================================================
HP-PCからの接続について検討

Tailscaleのコンソール画面(接続デバイスの表示)にPC(Windows)の表示がないことに疑問を感じた。
下記を実行
・Tailscaleを一度削除
・ソフトをダウンロード tailscale-setup-full-1.66.4.exe
・インストール
・Googleアカウントでサインインしたら、
コンソール画面に、takashi-hp-pc 100.73.145.18 が表示された
raspi7.tail<乱数>.ts.netにhttpsで接続できた。

*これで目的通りのことが実行できた。

***********************************************************************************************************************************

参考記事

超簡単おうちNextcloudと面倒な設定要らずの外部公開 with Tailscale #RaspberryPi - Qiita

環境Raspberry Pi 4 Model BRaspbian Bullseye 64bit2023年12月追加以下の解説はRaspberry Piを対象にしていますがさすがにRAM 2G…

Nextcloud でクラウドストレージをつくってみた ~ ユーザー操作編 ~ - カゴヤのサーバー研究室

「Nextcloud でクラウドストレージをつくってみた ~ サーバー構築編 ~」の関連記事となります。前回の記事では、Nextcloud 前回の記事では、Nextcloud を使いVPS上に専…