Nextcloudをhttps化する方法

📖 この記事は約 20 分で読めます。
概要

snap版Nextcloudを、Let’s Encrypt・自己署名証明書・独自の証明書のいずれかでhttps化する方法を、公式のコマンドに沿って紹介します。

管理人

本記事の読者層は以下の方を想定しています。

本記事の読者層
  • snapで入れたNextcloudをhttps化したい方
  • Let’s Encrypt・自己署名証明書・独自の証明書のどれを使うか迷っている方
目次

Nextcloudをhttps化する方法は3種類(snap版)

snap版のNextcloudは、nextcloud.enable-httpsというコマンド1つでhttps化できます。証明書の種類を3つの中から選んで実行するだけです。https化すると、httpのアクセスはhttpsへ自動的にリダイレクトされます(公式Wikiの記載)。

方法コマンド特徴
Let’s Encryptsudo nextcloud.enable-https lets-encryptドメイン名と、外部から届くポート80・443が必要。証明書は自動で更新される
自己署名証明書sudo nextcloud.enable-https self-signed手軽に使える。ブラウザに証明書の警告が出る。証明書は自動で更新される
独自の証明書sudo nextcloud.enable-https custom 証明書 秘密鍵 チェーン証明書他で入手した証明書ファイルを指定する。自動更新の対象ではない

具体的な手順は、後半の「snap版Nextcloudをhttps化する手順」で説明します。なお、本記事の手順はsnap版が対象で、Docker版のNextcloudには当てはまりません。

Nextcloudとは

「Nextcloud」は、「Owncloud」と同様にオンラインストレージとして無料で利用できるLinuxやWindowsのNAS(ネットワークストレージサーバー=Network Attached Storage)です。Nextcloud社が、2016年に「Owncloud」のスタッフが独立してowncloudをフォークすることで「Nextcloud」を作ったそうです。筆者も自宅サーバーOwncloudを2017年から利用しており、その後Nextcloudへ移行しました。

詳細はNextcloudのHPからも確認できます。

同様のサービスとして、GoogleDrive(無料は15GB。GmailやGoogleフォトと共有)やOneDrive(無料は5GB)、Dropbox(Basicプランの無料は2GB)がありますが(2026年10月時点)、どうしても無料で利用する場合には、容量不足で悩んでしまいます。

一方で、「Nextcloud」を自宅サーバーへインストールすることで、自宅サーバーのディスク容量の範囲で使える、無料のオンラインストレージを運用できることが最大のメリットです。デメリットも伝えておきますと、自宅サーバーなどへインストールする際は、メンテナンス費用がかかります。しかし、それだけの価値があります。

https化のメリット

NextcloudでWEB会議システム「Talk」を利用する際に、接続が必要となったためです。

また、snap版のNextcloudでは、https化するとhttpのアクセスが自動的にhttpsへリダイレクトされ、Let’s Encryptと自己署名証明書は自動で更新されます。詳細はNextcloud snap公式Wikiの「Managing HTTP encryption (HTTPS)」に書かれています。

Owncloudとの比較

OwnCloudは、データの共有と同期に重点が置かれています。一方で、Nextcloudはビデオ会議や共同作業などの他の機能を提供しており、サービスの範囲が大幅に違うという特徴を持っています。

Owncloudの詳細とインストールの仕方については以下の記事をご参照ください。

Nextcloudはプログラム言語「php」の他、導入するにはwebサーバー「apache」とデータベースサーバー「MySQL」が必要です。環境構築が難しいため、本記事では「snap」を用いコンテナ化されたnextcloudをインストールします。

自宅サーバーへのNextcloudのインストール環境

Nextcloudのインストールには、以下のソフトウェアが追加で必要となります。

Nextcloudに必要なソフトウェア
  • オペレーティングシステム (①Ubuntu 16.04以降、②Windows10/11 WSL1とWSLS)
  • MySQL 8以降、MariaDB 10以降
  • httpサーバー Apache 2.4
  • スクリプト言語 PHP 7.1+

上記は公開当時(2023年2月)に記載した要件です。対応するOS・PHP・データベースのバージョンはNextcloudの版ごとに変わるため、最新の要件は公式のシステム要件ページで確認してください。

この条件の環境構築にはある程度のサーバー管理経験が必要となることから、Nextcloudの最も簡単なインストール方法として、

  1. Linux環境に直接インストールする方法としてsnapによるインストール
  2. Linux環境の仮想環境にインストールする方法としてDockerによるインストール

の2つがお勧めです。本記事では前者のインストール方法について解説します。

今回は、Linux(サーバーに直接)へインストールする方法とWindows OS (のWSL/WSL2を利用してサーバー) へインストール方法を紹介します。

本記事の使用環境

Nextcloud環境

  • Windows 11 (zen2) or Ubuntu 18.04 LTS (Xeon)←自宅サーバー
  • Nextcloud
    バージョン 25.0.1 (Nov. 3, 2022)

上記は公開当時(2023年2月)の環境です。

Linux UbuntuへNextcloud(snap版)をインストール

Ubuntu 18.04 LTSへのインストール

2026年10月時点の注意として、Ubuntu 18.04 LTSの標準サポートは2023年5月31日に終了しています。Ubuntu Proに登録すると、2028年4月までセキュリティ更新を受けられます。詳細はUbuntu公式の18.04 LTSのページをご覧ください。

インストール方法は以下のコマンドをUbuntuサーバーのコマンドプロンプトよりタイプするだけです。

$ sudo snap install nextcloud

ということで、デバイスの選択ができません。

後は、指示に従って対応するだけとなります。

インストール先は、「/var/snap」上でコンテナとしてインストールされています。

現在のsnapのリストを確認するには、「snap list」コマンドを入力すると他のコンテナリストとバージョン情報を確認することができます。

$ sudo snap list
Name                  Version             Rev    Tracking         Publisher   Notes
bare                  1.0                 5      latest/stable    canonical?  base
core18                20221027            2620   latest/stable    canonical?  base
core20                20221027            1695   latest/stable    canonical?  base
core22                20220902            310    latest/stable    canonical?  base
gnome-3-34-1804       0+git.3556cb3       77     latest/stable/…  canonical?  -
gnome-3-38-2004       0+git.6f39565       119    latest/stable    canonical?  -
gnome-42-2204         0+git.d874303       29     latest/stable    canonical?  -
gnome-calculator      41.1-4-g5c9869a58c  920    latest/stable/…  canonical?  -
gnome-characters      42.0                781    latest/stable/…  canonical?  -
gnome-logs            42.0                115    latest/stable/…  canonical?  -
gnome-system-monitor  42.0                181    latest/stable/…  canonical?  -
gtk-common-themes     0.1-81-g442e511     1535   latest/stable/…  canonical?  -
nextcloud             24.0.6snap1         31751  latest/stable    nextcloud?  -
snapd                 2.57.4              17336  latest/stable    canonical?  snapd

snapの使い方や特徴は以下のリンクをご参照ください。

snap版Nextcloudをhttps化する手順

ここからは、snapでインストールしたNextcloudをhttps化する手順です。コマンドはNextcloud snap公式Wikiの記載に沿っています。いずれもUbuntuサーバーのコマンドラインで、sudoを付けて実行します。

どのコマンドを使うか迷う場合は、オプションの一覧を表示できます。

$ sudo nextcloud.enable-https -h

Let’s Encryptの証明書でhttps化する

Let’s Encryptで証明書を取得する場合は、次のコマンドを実行します。実行すると、ドメイン名など必要な情報の入力を求められます。

$ sudo nextcloud.enable-https lets-encrypt

Let’s Encryptは、Nextcloudがポート80と443で公開されていることを前提にしています(公式Wikiの記載)。取得した証明書は自動で更新されます。

自己署名証明書でhttps化する

自宅のネットワーク内で試すだけなど、手軽にhttps化したい場合は、自己署名証明書を使えます。

$ sudo nextcloud.enable-https self-signed

自己署名証明書は、第三者機関が発行したものではないため、ブラウザで開くと証明書の警告が表示されます。

他で入手した証明書でhttps化する

別の方法で入手した証明書と秘密鍵がある場合は、customを指定して、ファイルを渡します。証明書・秘密鍵・チェーン証明書の順に指定します。公式のテスト手順では、ファイルを/var/snap/nextcloud/common/に置いてから実行しています。

$ cd /var/snap/nextcloud/common
$ sudo nextcloud.enable-https custom cert.pem key.pem chain.pem

この方法で設定した証明書は、自動更新の対象ではありません。有効期限が切れる前に、ご自身で入れ替えてください。

ポート番号を変更する

https化を有効にすると、Nextcloudはポート80と443で待ち受けます。ほかのサービスとポートが重なる場合は、次のコマンドでポート番号を変更できます。公式のテスト手順では、先にhttps化を有効にしてから、httpsのポートを変更しています。

$ sudo snap set nextcloud ports.http=81 ports.https=444

現在のポート設定は、次のコマンドで確認できます。

$ sudo snap get nextcloud ports

なお、公式Wikiには、Let’s Encryptはポート80と443で公開されていることを前提にする、と書かれています。Let’s Encryptを使う場合は、ポートを変更する前にこの点を確認してください。

うまくいかないときの確認と、https化の解除

Let’s Encryptで入力を間違えたときは、sudo -iでrootに切り替えてから、もう一度コマンドを実行します。

$ sudo -i
# nextcloud.enable-https lets-encrypt

原因を調べるときは、Let’s Encryptのログを確認します。

$ sudo cat /var/snap/nextcloud/current/certs/certbot/logs/letsencrypt.log

https化をやめる場合は、次のコマンドを実行します。このコマンドは証明書のファイルを削除しません。

$ sudo nextcloud.disable-https

Windows10/11のWSLへインストールする場合

Windows上のWSLへのインストール

Windows上で動作するWindows Subsystem for Linuxのubuntu OS 18.04.5 LTSでnextcloudがインストール可能かについても検証してみました。

上記のネイティブ環境とはことなり、インストール用コマンドを入力してみたところ

$ sudo snap install nextcloud
Interacting with snapd is not yet supported on Windows Subsystem for Linux 1.
This command has been left available for documentation purposes only.

とインストールが中断されてしまいました。表示されたメッセージのとおり、WSL1ではsnapdがサポートされていないため、snapは使えません。WSL2ではsystemdを有効にすることで利用できます(次の項目を参照)。逆にDocker上で行った方が良いかもしれません。

Windows上のWSL2へのインストール

Windows上で動作するWindows Subsystem for Linux 2のubuntu OS 18.04.5 LTSでNextcloudがインストール可能かについても同様検証してみました。

インストール方法は以下をご参照ください。

WSL2はWSLと違い仮想環境にも対応しています。同様のコマンドを入力すると、下記のエラーが表示され、インストールできませんでした。

$ sudo snap install nextcloud
error: cannot communicate with server: Post http://localhost/v2/snaps/nextcloud: dial unix /run/snapd.socket: connect: no such file or directory

このエラーは、snapdの通信用ソケット(/run/snapd.socket)が存在しない、つまりsnapdが起動していない状態で出ます。

WSL2では、systemdを有効にするとsnapが使えるようになります。Microsoftの公式ドキュメントによると、/etc/wsl.confに次の2行を追記し、WSLを再起動します。なお、wsl --installで入れる最新のUbuntuでは、systemdが最初から有効です。

[boot]
systemd=true

Canonicalの公式ブログでは、systemdを有効にしたUbuntu WSLでsudo snap install nextcloudを実行する例が紹介されています。詳細はMicrosoftのWSLでsystemdを有効にする手順と、Canonicalの解説ブログをご覧ください。

Nextcloudの便利なプラグイン

以下にNextcloudの便利なプラグインを紹介します。

Nextcloudクライアントソフトのインストール

クライアントアプリ(同期アプリ)の種類として、Windows8.1以降、macOS, Linux等があります。

macOSへクライアントソフトをインストールする方法

Windowsへクライアントソフトをインストールする方法

Nextcloudモバイルアプリ

AndroidおよびiOS用のNextCloudクライアントを使えば、安全な暗号通信でファイルを同期、編集、共有できます。

これらNextCloudのクライアントソフトはGoogle PlayやApp Store経由でインストールすることもできます。

Nextcloudをアンインストールする方法

以下のコマンドでNextcloudをアンインストールすることができます。

$ sudo snap remove nextcloud

Nextcloudのよくある質問

Nextcloudは無料で使えますか?

自分のサーバーで運用する場合、Nextcloud本体は無料で使えます。ライセンスはAGPL-3.0のオープンソースです。企業向けには、長期サポートなどを含む有料のサブスクリプションが別に用意されています。

Nextcloudはどこの国のサービスですか?

開発元はNextcloud GmbHです。2016年に、ownCloudの中心的な開発者だったFrank Karlitschek氏らがownCloudをフォークして作りました。GmbHはドイツ語圏の有限会社の形態で、Nextcloudはドイツ発のプロジェクトとして知られています。

Nextcloudではどんなことができますか?

ファイルの共有と同期のほか、本記事で触れたWEB会議システム「Talk」など、共同作業の機能を使えます。機能を追加するプラグインについては、前述の「Nextcloudの便利なプラグイン」の記事をご覧ください。

まとめ

本記事のまとめ

snap版Nextcloudは、nextcloud.enable-httpsコマンドで、証明書の種類を選んでhttps化できます。

  • Let’s Encryptはlets-encrypt、自己署名証明書はself-signed、他で入手した証明書はcustomを指定する
  • Let’s Encryptはポート80と443で公開されていることが前提で、Let’s Encryptと自己署名証明書は自動で更新される
  • https化をやめるときはsudo nextcloud.disable-httpsを実行する(証明書は削除されない)

用途に合った証明書を選んで、Nextcloudを暗号化通信で使えるようにしましょう。

関連リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (2件)

コメントする

目次