0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

セキュアサーバに、なりたいな「ハイ!rclone crypt」③HTTPSサーバを構築してみる

Last updated at Posted at 2025-12-22

📚 シリーズ目次

本シリーズは、作業の一部で Linux Mint 22.2 Cinnamon Edition を使用します。
Windows 11 での作業手順も併記しています。)

1. はじめに

rcloneなら機密フォルダに自信が持てます♪ということで、今回はHTTPSサーバの構築です。前回の記事では、rcloneでのマウントにより暗号化フォルダを透過的にアクセスできることが確認できました。本記事では、Gitサーバ、SVNサーバへのアクセス基盤とするためにHTTPSサーバを構築していきます。

本記事では、非rootのスマホに仮想マシンを導入し、Android OS上でネイティブなLinuxサーバを稼働させることを目指します。

2. サーバアクセスの経路

2.1 SSH接続ではダメなの?

Gitサーバ、SVNサーバともにSSH経由での接続が可能です。今回はDebian上にサーバを構築するので、Termuxサーバでの長すぎURL問題とも無縁。HTTPS接続と違ってアップロードの容量制限もないので、管理用途ならSSH接続のほうが良さげ。

2.2 HTTPS接続のメリット

うん。SVNサーバにSSH接続してコミットすると、作者名がサーバのログイン名に固定となる訳ですよ。サーバ側で利用者ごとにログインユーザを作成することで対処できますが、手間も掛かるし使用できる文字の制限もある。HTTPS接続なら、このあたりがだいぶ楽になります。以下は、今回のサーバ構成での接続図です。

3. マウントの永続化

3.1 サービスの作成

前回は、動作確認のためにコマンドからマウントしただけでした。rcloneのマウントをサービス化して、Debianの起動時に自動でマウントさせるようにします。まずは、PCから以下のコマンドを実行してDebianに接続します。

Linux PC
ssh termux-qemu

続いて、systemdのサービスユニットを作成します。次のコマンドで .service ファイルを作成し、以下のように記載してください。

Debian
sudo nano /etc/systemd/system/rclone-mounter.service
Debian /etc/systemd/system/rclone-mounter.service
[Unit]
Description=Rclone Mounter for Termux Storage
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes

ExecStartPre=/usr/bin/mkdir -p /mnt/shared
ExecStartPre=/usr/bin/mkdir -p /mnt/sdcard
ExecStartPre=/usr/bin/mkdir -p /mnt/secure

ExecStart=/usr/bin/rclone mount termux-sftp:storage/shared /mnt/shared \
  --uid 1000 --gid 33 --umask 002 --allow-other \
  --vfs-cache-mode writes --daemon
ExecStart=/usr/bin/rclone mount termux-sftp:storage/sdcard /mnt/sdcard \
  --uid 1000 --gid 33 --umask 002 --allow-other \
  --vfs-cache-mode writes --daemon
ExecStart=/usr/bin/rclone mount termux-secure: /mnt/secure \
  --uid 1000 --gid 33 --umask 002 --allow-other \
  --vfs-cache-mode writes --daemon

ExecStop=/usr/bin/fusermount -u /mnt/shared
ExecStop=/usr/bin/fusermount -u /mnt/sdcard
ExecStop=/usr/bin/fusermount -u /mnt/secure

[Install]
WantedBy=multi-user.target

3.2 サービスの有効化

サービスユニットが作成できたら、以下のコマンドを実行してください。サービスが有効化されて起動するので、Debian起動時に自動でマウントされるようになります。

Debian
sudo systemctl daemon-reload
sudo systemctl enable rclone-mounter
sudo systemctl start rclone-mounter

4. HTTPS接続の設定

4.1 HTTPS通信の有効化

Apacheは前回でインストール済みなので、HTTPS通信の有効化から始めます。以下のコマンドを実行すると、HTTPS通信が有効化されます。

Debian
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo systemctl restart apache2

PCのブラウザで以下のURLを表示させると、プライバシーエラーの警告が出ます。HTTPS通信は問題なく動いているようです。

Linux PC URL
https://192.168.x.x:8443/

4.2 SSL認証の設定

クライアントでSSL認証を行うために、サーバ証明書を作成します。以下のコマンドを実行すると、自己署名のサーバ証明書が作成されます。

Debian
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/ssl/private/termux.key \
  -out /etc/ssl/certs/termux.crt \
  -subj "/CN=Termux Local Server" \
  -addext "subjectAltName=DNS:termux.home.arpa"

サーバ証明書を作成したら、default-ssl.conf の設定を修正して反映させます。

Debian
sudo nano /etc/apache2/sites-available/default-ssl.conf
Debian /etc/apache2/sites-available/default-ssl.conf
	#   A self-signed (snakeoil) certificate can be created by installing
	#   the ssl-cert package. See
	#   /usr/share/doc/apache2/README.Debian.gz for more info.
	#   If both key and certificate are stored in the same file, only the
	#   SSLCertificateFile directive is needed.
-	SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
-	SSLCertificateKeyFile   /etc/ssl/private/ssl-cert-snakeoil.key
+	SSLCertificateFile      /etc/ssl/certs/termux.crt
+	SSLCertificateKeyFile   /etc/ssl/private/termux.key
Debian
sudo systemctl restart apache2

4.3 クライアントの設定

サーバ側の設定ができたら、次はクライアント側の設定を行います。Debianもクライアントとして使用するため、Debianの設定から始めます。まずは、以下のコマンドで hosts ファイルを開いてホスト名を追加してください。

Debian
sudo nano /etc/hosts
Debian /etc/hosts
127.0.1.1		Redmi-12-5G
127.0.1.2		termux.home.arpa

続いて、以下のコマンドでシステムの信頼ストアにサーバ証明書を追加します。

Debian
sudo cp /etc/ssl/certs/termux.crt \
  /usr/local/share/ca-certificates/termux-local-server.crt
sudo update-ca-certificates

クライアントPCも同様に設定を行います。まずは、ホスト名の追加です。

Linux PC
sudo nano /etc/hosts
Linux PC /etc/hosts
192.168.x.x		termux.home.arpa

Windows環境では、以下のフォルダに hosts ファイルがあります。メモ帳を「管理者として実行」して編集してください。

Windows PC Path
C:\Windows\System32\drivers\etc

クライアントPCでは、ChromeやEdgeなどのブラウザからサーバ証明書をダウンロードしてください。以下のURLを開くと、アドレスバーに「⛔ 保護されていない通信」が表示されます。これを右クリックして証明書ビューアを開き、「エクスポート(X)」をクリックするとサーバ証明書をダウンロードすることができます。

Linux PC URL
https://termux.home.arpa:8443/

Screenshot from 2025-12-22 14-16-50.png

ダウンロードフォルダから右クリックでターミナルを開いて、以下のコマンドを実行するとシステムの信頼ストアにサーバ証明書が追加されます。

Linux PC
sudo cp "Termux Local Server" \
  /usr/local/share/ca-certificates/termux-local-server.crt
sudo update-ca-certificates

Windows環境では、以下のコマンドを実行します。Windows PowerShellを「管理者として実行」し、コマンドを実行してください。

Windows PC
cd "C:\Users\ユーザ名\Downloads"
Import-Certificate -FilePath "Termux Local Server.crt" `
  -CertStoreLocation Cert:\LocalMachine\Root

Linux版のChromeとEdgeは、Windows版とは違い独自の証明書ストアを運用しています。以下のURLでサーバ証明書をインポートしてお使いください。

Linux PC URL
chrome://certificate-manager/

5. おわりに

ストレージのマウントと接続経路の確保ができたので、残すところはGitとSVNのサーバ構築です。QEMUでの処理速度が実用に耐えうるのか、乞うご期待。余談ですが、Debianよりもさらに軽量なAlpine Linuxなるものを試してみました。QEMUから爆速で起動する…こともなく、Debianと変わらない起動時間でしたとさ。


◀️ 前の記事 次の記事 ▶️
セキュアサーバに、なりたいな「ハイ!rclone crypt」②rcloneで暗号化フォルダを作る セキュアサーバに、なりたいな「ハイ!rclone crypt」④SNVサーバを構築してみる
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?