最近ではセキュリティの観点から、httpsで始まるアドレスでサイトにアクセスすることが当たり前になってきました。
開発用など、自分のPCで動かすWebサーバーにアクセスする場合も、httpsから始まるアドレスを利用したくなることがあります。
ただ、そのために必要なSSL証明書を取得するのは面倒に感じることもあるのではないでしょうか。
そこで、安全・手軽にSSLを利用する方法をご紹介します。同時に、〜.net のようなアドレスも使えるようになりますよ。
以下のように順を追ってSSLアクセス環境を準備していきます。
SSL接続とは
インターネット上でやり取りするデータは、他人に漏洩すると危険な個人情報が多いです。例えばパスワードや決済情報、写真などがそうです。
そこで、インターネットで通信中は暗号化されており、関係のない他人が盗み見たり書き換えたりできない仕組みが用いられています。
そのような安全なネット接続のために使われているのがSSL(現在はSSLの後継であるTLS)というテクノロジーです。
暗号化機能である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 形式のアドレスを使用します。


Serveが提供するSSL機能の設定
実際にTailscaleのServeが提供するSSL接続を利用するためには簡単な設定が必要です。Windows、Linuxで、それぞれ説明します。
スタートメニューから[ターミナル]を開き、以下を実行。(以下のコマンドをターミナルに貼り付けてエンターキーを押す)
tailscale serve --bg http://localhost:8000


端末を開き、以下を実行。
sudo tailscale serve --bg http://localhost:8000


この方法を用いることにより、静的サイト(サーバーに置かれているファイルをそのまま表示するサイト)だけではなく、自分で構築するWordPress等のようなサービスにも安全にSSL接続できます。
なお、今回Tailscaleを設定したPCに、他のPCやスマホからアクセスするには、それらにもTailscaleのインストールが必要です。以下の記事も参照してください。


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


ここまででSSL接続が成功し、本記事の目標を達成できました。
もしブラウザからSSL接続できていることを確認したい場合は、何らかのWebサーバーが動いている必要があります。
ここからは必須事項ではありませんが、確認してみたい方は簡易Webサーバーの起動について、以下の補足事項もご覧ください。
今後の記事では、Tailscaleと今回用意したSSL接続を用いて、インターネットに自分のサイトを安全に公開する方法を紹介する予定です。
補足事項: ブラウザでSSL接続を確認したい場合
前章までの手順で既にSSL接続が利用できるようになっています。以下はブラウザで確認したい方へ向けての補足情報です。
お使いのPCでWebサーバーが動いていない場合は、一時的に簡易なサーバーを動かすことができます。そのために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>
[ターミナル]を開き、以下を実行。
python
ストアが開くので [入手] をクリック。


入手(インストール)が終わったら [入手] ボタンが [開く] ボタンに変わりますが、ストアはそのまま閉じます。
スタートメニューから [ターミナル] を開き以下を実行します。
python -m http.server 8000


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


Linuxでは端末を開き、以下を実行すると、すぐに簡易Webサーバーが動き始めます。
python3 -m http.server 8000
では、先ほど確認したTailscaleのMagicDNSが提供するアドレスでブラウザからアクセスしてみましょう。
鍵マークが表示され、httpsから始まるアドレスでSSL接続できていることを確認できます。















コメント