0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OrbStack上のFMSをTailscaleで安全に外部アクセスさせる(SSLも対応)

Last updated at Posted at 2025-12-25

はじめに

前回:OrbStackを用いたFMS構築、OrbStackを用いてMac上に軽量かつ本番環境に近いFileMaker Server (以下 FMS) のLinux環境を構築する方法を紹介しました。

これで「手軽なローカル開発環境」が手に入ったわけですが、開発環境構築を進めると次なる壁にぶつかります。
「このFMSに、iPhone (FileMaker Go) や外部のPCからアクセスしたい」 ですね。

ローカルネットワーク内であればIPアドレス指定で簡単ですが、カフェからアクセスしたい、あるいは4G回線での挙動を見たいといった場合、途端にハードルが上がります。
今回は、VPNの代替として Tailscale を導入し、この課題を「革命的」な手軽さで解決します。

しかも、最大の鬼門(面倒臭いという意味で)である 「SSL証明書 (Let's Encrypt)」 も、ポート開放なしで簡単に導入できてしまいます。

外部アクセスにおける「これまでの常識」と苦痛

OrbStackの仮想環境に限らず、ローカルで構築したサーバーマシン上のFMSを外部公開しようとすると、従来は以下のような手順が必要でした。

  1. ルーターのポート開放: ポート5003や80/443をインターネットに晒す(セキュリティリスク大)。
  2. 固定IPまたはDDNS: 自宅のグローバルIPが変わるたびに接続できなくなる問題への対処。
  3. 複雑なネットワーク設定: Macのファイアウォール設定、OrbStack側のポートフォワーディング設定など。

これらは設定ミスで繋がらないことが多く、何よりセキュリティ面で不安が残ります。「検証したいだけなのに、なぜネットワークエンジニアのような真似事を…」と徒労感を感じた方も多いはずです。本当に面倒です。面倒だからやらないですよね?面倒だから赤い鍵マークのまま運用する。これでは本末転倒です。本来ならClaris社が開発環境用として手軽なSSL証明書を用意するべきです。毎回嫌になりますよね。

Tailscale という「魔法」

そこで導入したのが Tailscale です。USコミュニティでは割と話題に上るようですが、日本国内ではそんなに耳にしません。
技術的には WireGuard プロトコル(私は詳しい事は分かりません)をベースにしたメッシュVPNサービスですが、ユーザー体験としては 「ログインするだけで、世界中の自分のデバイスが同じLANにいる状態になる魔法ツール」 です。

FMS運用におけるTailscaleのメリット

1. ポート開放・ルーター設定が一切不要

NATトラバーサルという技術により、ルーターの設定を一切触ることなく、外部からOrbStack(仮想マシン)内のUbuntuに接続できます。二重ルーター環境でも問題ありません。もちろん物理サーバーでも、AWS EC2でもです。

2. 認証ベースの堅牢なセキュリティ

GoogleアカウントやGitHubアカウントでログインしたデバイスだけがネットワークに参加できます。IPアドレスを知られても、認証されていない第三者はアクセスすらできません。

3. 圧倒的な導入の手軽さ

サーバー側(Ubuntu)とクライアント側(iPhone/Mac/Win)に専用アプリを入れてログインするだけ。ネットワーク設定ファイルとの格闘は皆無。驚くほど簡単です。

実践:OrbStack(仮想マシン上のLinux) + Tailscale 導入手順

前提として、OrbStack上でUbuntuのマシンが稼働しており、FMSがインストールされている状態とします。通常なら一番難しいであろう仮想マシン上のFMSへの直通接続です。なのでリアルなサーバでもAWS EC2でも全く同じ手順のはずです。

1. Ubuntu (FMS) への導入

OrbStackのUbuntuターミナルに入り、公式のインストールコマンドを叩くだけです。

# インストールスクリプトの実行
curl -fsSL https://tailscale.com/install.sh | sh

# Tailscaleの起動
sudo tailscale up

起動すると認証用のURLが表示されるので、ブラウザで開いてログインします。これだけで、このUbuntuマシンはTailscaleネットワーク(Tailnet)の一部になりました。一瞬です。私はネットワーク設定は何もしていません。

2. クライアント側(iPhone/Mac/Win)の準備

接続したいiPhoneやMacにもTailscaleアプリを入れ、同じアカウントでログインします。アプリ上のスイッチを「Active」にするだけで準備完了です。VPNと同じ感覚です。

3. 接続確認: Ubuntu側で割り当てられたIPアドレスを確認します。

tailscale ip -4
# 例: 100.75.114.19

TailScaleのwebのadminコンソールからも確認できます。
image.png

この 100. から始まるアドレスは、Tailscaleネットワーク内だけのプライベートIPです。
そして、ここにある自分の複数のマシンがどこにいようが同じネットワーク内にいる状態です。

  • Tailscaleの管理コンソールからマシン名を変更(例: ubuntu → fms)しておけば、MagicDNS機能により fms というホスト名だけで接続できるようになります。

ポート80開放なしでSSL証明書を入れる

ここからが本記事のハイライトです。FMSの検証にはSSL証明書が必須ですが、無料の Let's Encrypt を使うには、通常「HTTP-01認証(外部から80番ポートへのアクセス)」が必要です。
ローカル環境や閉じたVPN内ではこれが最大の壁でした。ネットワークに詳しくない人間は面倒すぎて諦めるのが普通です。
しかし、Tailscaleの 「HTTPS Certificates」 機能を使うと、DNS認証を用いて正規の証明書を発行できます。

手順

機能の有効化:Tailscale管理コンソール (Web) の [DNS] 設定に進みます。

image.png

一番下までスクロールして「MagicDNS」と「HTTPS Certificates」を Enable にします。

image.png

証明書の発行 (Ubuntu側)

まず自分のドメイン名を確認

image.png

このtail****.netが割り当てられたユニークなドメイン名です。この名前の先頭にマシン名を付けたものがアドレスになります。Machinesタブで確認できます。

image.png

コマンドラインでの確認(マシン名がubuntuだった場合)

tailscale status --json | grep ubuntu
# 出力例: ubuntu.******.ts.net

アクセスされる側のマシン(ここでは仮想環境内のubuntu)で証明書発行コマンドを打ちます。リアルマシンの場合はターミナルから実行します。

# 証明書の発行
sudo tailscale cert ubuntu.******.ts.net

これでカレントディレクトリに .crt と .key ファイルが生成されます。

Macへのファイル転送 (Taildrop):ここで Taildrop という機能を使います。AirDropのようにデバイス間でファイルを送れます。

# ファイルの所有者を自分に変更 (root権限だと転送できない場合があるため)
sudo chown username:username ubuntu.********.ts.net.*
# Mac (例: my-macbook) へ転送
tailscale file cp ubuntu.********.ts.net.crt my-macbook:
tailscale file cp ubuntu.********.ts.net.key my-macbook:

Macの「ダウンロード」フォルダに証明書が届きます。

面倒であれば、ファインダー上で移動しても問題ありません。

FMSへのインポート:あとは通常通り、FMS Admin Console の「構成 > SSL証明書」からカスタム証明書のインポートを選択
(※FMS画面上の「CSRを作成」や「Let's Encrypt証明書を要求」ボタンは使いません(これらはポート80開放が必要なため)。必ず「証明書をインポート」から行います)
image.png

署名済みの証明書ファイルは拡張子が.crtのファイル、プライベートキーファイルは拡張子が.keyのファイルです。
その他の中間証明書・プライベートキーパスワードは無視でいいです。
image.png

Let's Encryptの証明書が取得できました。有効期限は3ヶ月なので、また3ヶ月後同じ手順を踏めばいいです。
もちろん自動化も可能ですが、何回か手動でやってみた方がいいと思います。すぐ手順を忘れてしまうので。
image.png

で、後はFMSを再起動するだけです。

sudo service fmshelper restart

これで、iPhoneやMacのFileMakerから "fmnet:/ubuntu.*******.ts.net/ファイル名" にアクセスすると、嫌な警告画面はなく、緑色の鍵マーク付きでアプリ が表示されます。(今まで自己署名証明書の警告を無視していたのが嘘のように、クリーンな環境になります)

OrbStackのホストマシンからのアクセスは?

OrbStackで仮想マシンを起動させている側、いわゆるホスト側のMacからは、今まではOrbStackが発行してくれたホストマシン用のアドレス、ここでは ubuntu.orb.local 経由でアクセスしていました。

image.png

FileMaker以外のSSHアクセスならこれでいいのですが、せっかく入れたSSL証明書付きFMSへこの "ubuntu.orb.local" でFileMakerクライアントからアクセスすると、今まで通り証明書が違うといって怒られます。
そうです、証明書は"ubuntu.********.ts.net"と言うドメインに対して発行されたものなので、"ubuntu.orb.local" というネットワーク経路は違うのです。
なので、ホスト側のMacにもtailscaleアプリをインストールし、他のマシンと同じように "ubuntu.********.ts.net"経路でアクセスすればいいだけです。同じマシンの中にあるのになんでわざわざ他のネットワーク経由で?って思うでしょうが、これこそがリアルなサーバー環境なのです。

まとめ

  • OrbStack で軽量なサーバーを立て、Tailscale でセキュアに繋ぐ。この組み合わせは、現時点でのFileMaker Server 開発環境の「最も簡単な構築方」の一つだと思います。
  • どこでも開発: カフェのWi-Fiからでも自宅のFMSに安全に接続できます(VS Code Remoteも使えます)。
  • 完全なSSL: 警告画面に悩まされることなく、WebDirectやFileMaker Goの検証が可能です。「インフラ周りの面倒臭さ」を極限まで排除し、開発そのものに集中できるこの環境、世界が変わります。

Claris側はこういった情報は公式には何も公開しません(笑)。アプリの販売会社なので、サポート的に面倒を引き起こすような情報提供はしません。公式コミュニティでユーザー同士頑張ってねというスタンス。面倒な人は金を積んでFileMakerCloud使えという企業姿勢なので。まあ当然ですね。

しかし、「上に政策あれば、下に対策あり」です。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?