MENU
アーカイブ
INGSTE YouTubeチャンネル

TailscaleのServeとMagicDNSでローカルWebサーバーに手軽なHTTPS(SSL)接続を実現

最近ではセキュリティの観点から、httpsで始まるアドレスでサイトにアクセスすることが当たり前になってきました。

開発用など、自分のPCで動かすWebサーバーにアクセスする場合も、httpsから始まるアドレスを利用したくなることがあります。

ただ、そのために必要なSSL証明書を取得するのは面倒に感じることもあるのではないでしょうか。

そこで、安全・手軽にSSLを利用する方法をご紹介します。同時に、〜.net のようなアドレスも使えるようになりますよ。

以下のように順を追ってSSLアクセス環境を準備していきます。

目次

SSL接続とは

インターネット上でやり取りするデータは、他人に漏洩すると危険な個人情報が多いです。例えばパスワードや決済情報、写真などがそうです。

そこで、インターネットで通信中は暗号化されており、関係のない他人が盗み見たり書き換えたりできない仕組みが用いられています。

そのような安全なネット接続のために使われているのがSSL(現在はSSLの後継であるTLS)というテクノロジーです。

SSLは Secure Sockets Layer の略で、ブラウザとWebサイトの間の通信を暗号化する仕組みです。

現状ではSSLの進化版のTLSが使われているのですが、「SSL」という呼び方は今でもよく用いられるので、記事内でもそのように表記しています。

暗号化機能であるSSLですが、自分だけが使うサーバーでも使用するメリットがあります。

例えばブラウザに「安全ではない接続」のような煩わしい警告が表示されなくなります。それだけではなくWebサイトを開発するなら、クッキーの扱いなどを本番に近い環境にできます。

WordPressなども、テスト環境の段階でSSL対応しておくと、本番環境に移行しても差異を少なくでき、トラブル回避に役立ちます。

この記事では、VPNサービスであるTailscaleの機能のServeとMagicDNSを用いてSSL接続を実現します。

Tailscaleの詳細は以下の記事をご覧ください。

Tailscaleを導入してServeとMagicDNSでSSL接続

ServeとMagicDNSの概要

自分のPC内で動いているWebサイトに対し安全なSSL接続を実現する、つまりhttpsから始まるアドレスを用意してくれるのが、TailscaleのServeという機能です。

また、Tailscale専用の「~.~.ts.net」という分かりやすいアドレス(ドメイン名)を割り当ててくれるのがMagicDNSです。これにより 192.168.2.2 や 100.X.X.X のようなアドレスを使わなくても自分の機器同士を接続でき、さらに上記のServeを共に用いることによって、このアドレスでSSL接続ができます。

Tailscaleの導入

以下の記事を参考にTailscaleの利用準備を行ってください。Windows(ARM版も含む)、Mac、Linuxで利用可能です。

Linuxでの導入に関しては、以下のサイトの目次:「Tailscaleのアカウントを用意」、「TailscaleのインストールとPCの登録」に書かれています。

記事にあるUbuntuや他のLinuxディストリビューションでも、ほとんど同じ方法で導入できるのでご参照ください。

Tailscale導入後、以下にアクセスし、お使いのPCが登録されたことを確認してください。

https://login.tailscale.com/admin/machines

MagicDNSが提供するアドレスの確認

TailscaleではデフォルトでMagicDNSが有効になっているため、〜.~.ts.net のようなアドレス(ドメイン名)が利用可能です。以下のようにして確認できます。

登録したPCの行にあるアドレス(100.X.X.X)の右横 ∨ をクリック。
赤矢印で示した ~.~.ts.net 形式のアドレスを使用します。

100. から始まるIPアドレスでもアクセスは可能ですが、ドメイン名形式のアドレスに対して発行されるSSL接続には利用できません

これらのアドレスは、自分のTailscaleアカウントに登録したPCやスマホからのみアクセス可能であり、PC内のデータが勝手にインターネット上に公開されることはありません。

Serveが提供するSSL機能の設定

実際にTailscaleのServeが提供するSSL接続を利用するためには簡単な設定が必要です。Windows、Linuxで、それぞれ説明します。

Windows 11での方法

スタートメニューから[ターミナル]を開き、以下を実行。(以下のコマンドをターミナルに貼り付けてエンターキーを押す)

tailscale serve --bg http://localhost:8000
Linuxでの方法

端末を開き、以下を実行。

sudo tailscale serve --bg http://localhost:8000


この方法を用いることにより、静的サイト(サーバーに置かれているファイルをそのまま表示するサイト)だけではなく、自分で構築するWordPress等のようなサービスにも安全にSSL接続できます。

既にWebサーバーを動かしている方のために付加情報をお伝えします。上で紹介したコマンドはPCのlocalhost:8000で動いているサーバーを、Tailscaleが提供するhttpsアドレスで利用するためのものです。

デフォルトのポートとは違いますが、後ほど補足事項で説明する簡易Webサーバーの設定に合わせるためこのようにしています。

もし既にWebサーバーを動かしている場合は、ポート80など環境に合わせてコマンドを実行してください。
例:tailscale serve --bg http://localhost:80

なお、今回Tailscaleを設定したPCに、他のPCやスマホからアクセスするには、それらにもTailscaleのインストールが必要です。以下の記事も参照してください。

スマホへのインストールについては、以下の記事の目次「Tailscaleをスマホにもインストール」をご覧ください。

ここまででSSL接続が成功し、本記事の目標を達成できました。

もしブラウザからSSL接続できていることを確認したい場合は、何らかのWebサーバーが動いている必要があります。

ここからは必須事項ではありませんが、確認してみたい方は簡易Webサーバーの起動について、以下の補足事項もご覧ください。

今後の記事では、Tailscaleと今回用意したSSL接続を用いて、インターネットに自分のサイトを安全に公開する方法を紹介する予定です。

前章までの手順で既にSSL接続が利用できるようになっています。以下はブラウザで確認したい方へ向けての補足情報です。

お使いのPCでWebサーバーが動いていない場合は、一時的に簡易なサーバーを動かすことができます。そのためにPythonと呼ばれるプログラム言語を用います。

WindowsではPythonが標準インストールされていないため、インストール方法を説明します。

Ubuntuなど、標準的なインストールをした多くのLinuxディストリビューションでは、特に何もせずにPythonが利用できることが多いです。

まずWindows、Linux共通の準備としてWebサイトを表示させるHTMLファイルを作ります。分かりやすい場所にフォルダを作り半角英数文字で名前をつけます。メモ帳などのテキストエディタを開き、以下の内容をindex.htmlというファイル名で作ったフォルダに保存します。

<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>Server Demo</title>
  </head>
  <body>
    <div>
      <h1>サーバー動作確認</h1>
      <p>このページが表示されたらWebサーバーは正常です</p>
    </div>
  </body>
</html>
Windows 11での方法

[ターミナル]を開き、以下を実行。

python

ストアが開くので [入手] をクリック。

入手(インストール)が終わったら [入手] ボタンが [開く] ボタンに変わりますが、ストアはそのまま閉じます。

スタートメニューから [ターミナル] を開き以下を実行します。

python -m http.server 8000

pythonの最初の起動なので、少し時間がかかりますが、以下のようなメッセージが表示され、簡易Webサーバーが動き出します。

Linuxでの方法

Linuxでは端末を開き、以下を実行すると、すぐに簡易Webサーバーが動き始めます。

python3 -m http.server 8000

では、先ほど確認したTailscaleのMagicDNSが提供するアドレスでブラウザからアクセスしてみましょう。

鍵マークが表示され、httpsから始まるアドレスでSSL接続できていることを確認できます。

この記事が気に入ったら
フォローしてね!

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

この記事を書いた人

自称文系ながら気づけばLinuxを10年以上使っている少し変わり種。
寄り道しても結局はGNOMEに戻ってきてしまう習性あり。
のんびり派かつスタミナが続く限り試しながら理解していく実践派。

趣味はバイオリンと(自然)言語探究。コードより和音が好物!?
音楽もITも「背後で何が起きてるか」に興味津々

コメント

コメントする

CAPTCHA


目次