以前、Laravel 5.6 Laravel Homesteadを試してみた!!という記事を書きました。
こちらを利用して、iPhoneからhttps://example.ml
で接続できるようにしてみたいと思います。
##DNSサーバの構築
vagrantでDNSサーバを構築していきます。
vagrant box add bento/ubuntu-16.04
vagrant init bento/ubuntu-16.04
vagrant up
Vagrantfileにconfig.vm.network "public_network", bridge: 'en1: Wi-Fi (AirPort)'
を追記します。
追記後、vagrant reload
で再起動します。次に、vagrant ssh
でサーバにログインします。
小規模な内部ネットワーク向けの軽量な DHCPサーバーソフトウェア Dnsmasq を利用します。
まず始めに、管理者になり、dnsmasqをインストールします。
// 管理者になります
sudo su
apt-get -y install dnsmasq
インストール後、設定をします。
vi /etc/dnsmasq.conf
# 19行目:コメント解除 (ドメイン名の無いクエリは上位サーバーに問い合わせない)
domain-needed
# 21行目:コメント解除 (プライベートIPの逆引き要求は上位サーバーに問い合わせない)
bogus-priv
# 53行目:コメント解除 (resolv.confに記述のサーバーに上から順に問い合わせる)
strict-order
# 135行目:コメント解除 (ホスト名に自動的にドメイン名を付加する)
expand-hosts
次に、クライアントからの要求に対して、設定した内部ドメインは /etc/hosts
を参照し、その他は上位のDNSサーバーに問い合わせて結果を返すように設定します。
vi /etc/hosts
192.168.0.10 example.ml
設定後、dnsmasqを起動します。
systemctl start dnsmasq
##Homestead内のsslの設定
Homestead内のnginxの設定にssl通信を追加します。
使用する証明書は、以前Ubuntu18.04で構築したサーバの証明書を利用します。scpコマンドを利用して/etc/nginx/ssl
にファイルを移動させます。そして、Homesteadのngnix設定ファイル/etc/nginx/sites-available/homestead.test
をデフォルトの設定はコメントアウトし、新規に証明書の設定を追記します。
ssl_certificate /etc/nginx/ssl/fullchain.pem; => 新規追加
ssl_certificate_key /etc/nginx/ssl/privkey.pem; => 新規追加
#ssl_certificate /etc/nginx/ssl/homestead.test.crt; => デフォルトの設定
#ssl_certificate_key /etc/nginx/ssl/homestead.test.key; => デフォルトの設定
ファイルの設定後、nginxを再起動させます。
sudo systemctl restart nginx
##iPhone側の設定
①iPhone本体の設定から、Wi-Fi環境の設定を選択します。
②赤い矢印の箇所をクリックします。
③そして、DNSを構成の箇所を選択します。デフォルトは、手動ではなく自動の設定をなっています。
④DNSサーバの箇所にDNSサーバのIPアドレスを設定すれば完了です。
⑤https://example.ml
にアクセスしてみてください。httpsでアクセスできていることを確認できるはずです。
##最後に
開発するための環境のために、別環境でサーバを立てることなく自前のMac内で開発環境を構築しました。
心置きなく、iPhoneの開発ができます。
よかったら、参考にしてみてください。
参考元
https://www.server-world.info/query?os=Ubuntu_16.04&p=dnsmasq&f=1