前回の記事ではNextcloudの構築方法を解説しました。ですがあの状態ではただNextcloudをブチ込んだだけなのでhttpsには対応してないし、DDNSの設定もしてないのでローカル環境かつ安全でないhttp接続でしかアクセスすることができません。どんな端末でも自分のファイルにアクセスするために今回はNextcloudのhttps化とDDNSの設定をしていきましょう。
例のごとく、基本的にコピペだけで終わりますが、今回は一部の項目で手打ちをする必要があります。
ちなみに前回の記事は↓から読むことができます。
前知識 何故https化とDDNSの設定が必要なのか
簡単に言うと
https化する理由は「悪い人に情報を取られないため」
DDNSの設定をする理由は「使う人が簡単にアクセスできるようにするため」
です。
細かく解説します。「もう分かった!大丈夫!」って人は飛ばして下さい。
上記記事にて起動しているNextcloudはhttp接続のものです。http接続は基本的に情報を平文で送るのでそこらのフリーWi-FiでNextcloudにアクセスしたり、ファイルのやりとりを行ったりすると、第三者にユーザー名やパスワードが漏洩してしまう恐れがあります。そこでhttps接続を行うことで、送受信する情報を暗号化させ、第三者が情報を盗み出しても問題ないようにすることができます。
次にDDNSの設定をする必要性は、「google.com」や「apple.com」のようなURLを自身で作ることで、「192.168.4.132」のような覚えづらい番号の羅列ではなく、覚えやすいURLを作成することで便利にアクセスするために設定を行います。またこの設定をすることで、サーバーのIPアドレスが変更されても、同じURLで同じようにアクセスすることができるようになります。
今回使用するソフトウェア
今回、使用するソフトウェアは以下のとおりです。
- certbot(Let’s Encryptというサービスを使って無料でhttps化するためのツール。)
- snapd(certbotを使うために必要、dockerみたいなもん、知らんけど。)
- MyDNS(これも無料でDDNSの設定ができるサービス。このブログも使ってる。)
DDNSの設定
MyDNSの登録
まずはDDNSの設定を行います。No-IPやDuckdnsなどがありますが、今回はMyDNSを使用します。
Mydnsの登録をするため、下記URLにアクセスします。
氏名や電話番号、メールアドレスを入力して続けます。
最後に右下の「送信」を押してユーザー登録は完了です。
入力したメールアドレス宛にIDとパスワードが記載されたメールが届きます。MyDNSのログインに使用するので絶対に忘れないようにしましょう。なお、パスワードの変更を行うことはできますが、好きなパスワードを設定することはできませんので注意して下さい。(パスワードの変更を希望すると、新しくランダムのパスワードが発行されたメールが届きます。)
ちなみにGmailだと迷惑メールフォルダに突っ込まれてたので、メールが届いてないなと思ったら迷惑メールフォルダを確認してみて下さい。
ドメイン名の設定
次にドメイン名(google.comとかのURL)の作成をしましょう。先ほどのIDとパスワードを使用してログインした後、「DOMAIN INFO」を押します。ページを下にスクロールして、Domain欄にドメイン名を入力します。
ここに入力することができるドメイン名は以下の通りです。?????+ドメインリストの組み合わせによって自分のドメイン名を作成することができます。その後右下の「確認」を押し、内容を再度確認したのち「送信」を押します。これでドメイン名の取得ができました。
最後にドメイン名とIPアドレスを結びつけるために簡単なシェルスクリプトを作成します。
ドメイン名とIPアドレスを結びつける
ラズパイのターミナルにて操作を行います。
と、その前にメモ帳を開き、以下のコード内の鉤括弧を適宜書き換えてどこかに保存して下さい。もちろん鉤括弧なしです。
wget -O - 'https://「mydnsのID」:「パスワード」@ipv4.mydns.jp/login.html' wget -O - 'https://「mydnsのID」:「パスワード」@ipv6.mydns.jp/login.html'
書き換えた例です。
wget -O - 'https://mydns123456:abcd1234@ipv4.mydns.jp/login.html' wget -O - 'https://mydns123456:abcd1234@ipv6.mydns.jp/login.html'
ラズパイのターミナルを開いて以下のコマンドをコピペ+Enterします。
nano /home/pi/mydns.sh
その後上で作ったwgetで始めるコマンド二行をコピペし、Ctrl+X⇨Y⇨Enterの順で入力します。これでシェルスクリプトは完成です。次にIPアドレスを定期的に通知するための設定をします。
crontab -e
Select an editorが出てきたらもう一度Enterを押します。
その後下のコマンドをコピペし、Ctrl+X⇨Y⇨Enterの順で入力します。以上でDDNSの設定は完了です。
*/10 * * * * /home/pi/mydns.sh
https化の設定手順
httpsの設定を行いましょう。
一旦rootになっときます。以下のコマンドを打ちます。パスワードを聞かれたらパスワードを打ちます。(ラズパイなら不要なはず)
sudo su
まずsnapdとcertbotのインストールをします。
apt install snapd snap install --classic certbot
インストールしたcertbotを使ってhttpsの設定をします。
sudo cetbot --apache
あとはコンソールに書いてある内容に従って進めていきます。メールアドレスは公開されても良いメールアドレスを、ドメイン名は先ほど設定したドメイン名を、他のY/Nの選択肢は基本的にYを押してEnterすれば大丈夫です。
全ての設定が完了すると自動的に設定が書き換えられ、httpsから始まるアドレスでNextcloudにアクセスすることが可能になります。
ラズパイを再起動してから
https://自分のアドレス/nextcloud
にアクセスしてみましょう。恐らくこれでアクセスできるはずです。
外出先でアクセスをするためには、ルーターのポート解放が必要です。これに関しては機器によって設定方法が大きく異なるため、「型番 ポート解放」などで調べてみて下さい。ちなみに解放するポート番号はhttpとhttpsの両方を解放するなら80番と443番、httpsのみの場合は443番です。
終わりに
以上の設定を完了させれば、自分のスマホやタブレット、大学のPC、ネカフェのPCなどからいつでもどこでも必要なファイルを取り出すことができます。ファイル共有や共同作業までできるので、Nextcloudは企業から個人まで幅広く活躍してくれるでしょう。
そういえば半導体不足なのか分かりませんがラズパイ高くなりましたよね。自分が購入した時は確か1万円しなかったくらいなのに、今では倍近くになってますね。また安くならないかなぁ。
下のリンクはアフィリンクでもなんでもないただのアマゾンリンクです。このリンクを踏んで買ったところで自分には一円も入りません。
投稿者にお布施したい変態はコメントを下さい。当方貧乏学生なので何かくれたら泣いて喜びます。