LoginSignup
4
1

More than 3 years have passed since last update.

ドメインを取得してMyDNSを使ってRaspberryPiを自宅Webサーバとして公開

Last updated at Posted at 2019-10-30

やること

ラズパイに置いてあるhtmlファイルを自宅外のiPhoneから取ってきて、Safariで見れるようにする。

目次

  • Apache2とPHPをインストール -> 同一LAN内からはアクセスできるようになる
  • ドメインをお名前.comで取得
  • MyDNSというサービスを使って、自宅のIPアドレスを定期的に通知(1ヶ月何もしないと消えちゃうので気を付ける)
  • ポートフォーワーディング等、ルータ設定
  • # SSL通信化(httpsによりSecureな通信、SSL証明書発行)

Apache2とPHPをインストール -> 同一LAN内からはアクセスできるようになる

Terminal
sudo apt-get install apache2
sudo apt-get install php

htmlファイルの中に埋め込まれているPHPファイルを使えるようにするには多少ファイルをいじる必要があるみたいだが、aptでインストールすると、その辺も勝手にやってくれるみたい。

ドメインをお名前.comで取得(自宅のIPアドレスが動的IPアドレスなのでグローバルIPアドレスがしょっちゅう変わる)

.me のトップドメインが初年380円と安かったので取得しちゃいました。
自宅のプロバイダ契約が動的IPアドレスだったので、外からグローバルIPアドレスでアクセスしても少し時間が立つとIPアドレスが変わってしまいアクセスできなくなってしまう。
なのでお名前.comでドメイン名を取得しMyDNSも使いました。
お名前.comでMyDNSへたらい回しにする設定をした後、設定が反映されるまで10時間以上かかりました。

流れは
ブラウザ等で

  • URLにドメイン名を入力
  • そのトップドメイン名を管理しているDNS(Domain Name Server)サーバへ問い合わせる
  • DNSサーバがそのドメイン名に割り当てられているIPアドレスを返す
  • そのIPアドレスへブラウザがアクセスし、htmlファイルなりなんなりをもらって表示する。

しかし、お名前.comにこのドメインのグローバルIPアドレスはこれだよと使えても、それがしょっちゅう変わってしまう
そこで、MyDNSというサービスを使います。
MyDNSというのは、DDNS(DynamicDNS)サービスで、DNSが更に違うDNSに問い合わせる時の問い合わせ先です。
流れは

  • URLにドメイン名を入力
  • そのトップドメイン名を管理しているDNS(Domain Name Server)サーバへ問い合わせる
  • DNSサーバが、そのドメイン名の管理はこのDNSがやっているよ、と更に違うDNS(MyDNS)にたらい回し
  • MyDNSは定期的に更新されている(更新するようにしている)ので、その最新のIPアドレスをお名前.comに返す
  • そのドメイン名に割り当てられているIPアドレスを返す
  • そのIPアドレスへブラウザがアクセスし、htmlファイルなりなんなりをもらって表示する

MyDNSというサービスを使って、自宅のIPアドレスを定期的にドメインと紐付ける(1ヶ月アクセス無いと消えちゃうので気を付ける)

ipv4とipv6どちらも更新されるようにする。

mydnsupdate.sh
#!/bin/bash
MID="自分のmydnsID"
PASS="自分のパスワード"
wget -O -  https://$MID:$PASS@ipv4.mydns.jp/login.html
wget -O -  https://$MID:$PASS@ipv6.mydns.jp/login.html

これをcronで定期的に実行するように設定。

ポートフォーワーディング等、ルータ設定

SSL通信化(httpsによりSecureな通信、SSL証明書発行)

https でないWebサイトはChromeの検索エンジンにひっかからなくなるらしい。(もうすぐ?)
https://piguide.dev/2019/03/13/raspberry-pi-ssl-certificates-using-lets-encrypt.html

参考サイト

4
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
4
1