NoIP と Let’s Encrypt で ownCloud をドメインと SSL へ対応する
以前、紹介した記事で、自宅のパソコンに ownCloud を利用したクラウドストレージの構築手順を解説いたしました。
また、そのクラウドストレージのパフォーマンスの改善方法やセキュリティー対策に関しても、別のた記事で解説いたしました。
今回は、ドメインを取得し、自宅 Web サイト(ownCloud を構築したパソコン)に設定し、また、その Web サイトの SSL への対応手順を解説したいと思います。
なお、ownCloud を構築した時の OS は Raspberry Pi Desktop(Debian Buster) でしたが、同じ Debian 系 OS の Ubuntu にクラウドストレージを再構築しています。
ドメイン対応と SSL 対応メニュー
以下が、自宅 Web サイトのドメイン対応(取得 / 設定)と SSL 対応メニューです。
- ドメイン対応
- SSL 対応
- DNS 自動更新の設定
ドメイン対応
多くの家庭用インターネット回線では、グローバル IP アドレスは、静的 IP アドレスではなく動的 IP アドレスが割り当てられています。
そのため、ONU の再起動により、再起前に割り当てられてたグローバル IP アドレスから別のグローバル IP アドレスに変動してしまう場合があります。
もし、ドメインと現在割り当てられているグローバル IP アドレスを紐づけてしまった場合、ONU を再起動しただけで、自宅 Web サイトにドメイン名でアクセスできなくなるかもしれません。
そのグローバル IP アドレスの変動にも対応してくれるサービスが DDNS サービスです。
DDNS サービスは無料で提供されているものも多いため、その無料の DDNS サービスを利用いたします。
また、その中でも使い勝手がよさそうな「no-ip」と契約しましたので、ドメインの取得に関しては、no-ip の手順になります。
SSL 対応
続いて、SSL への対応を実施します。
また、利用する SSL は無料の「Let’s Encrypt」です。
Let’s Encrypt は無料ですので、証明書の有効期間が90日です。ですが、期間内にいつでも証明書の再発行ができます。
証明書の再発行には自動更新サービスという便利な機能があり、それを利用することで証明書の期限切れを意識せずに使い続けることだできます。
その自動更新サービスに関しても対応したいと思います。
DNS 自動更新の設定
グローバル IP アドレスが変動した場合、ドメイン名との紐づけを設定し直す必要があります。
No-IP では、グローバル IP アドレスが変動しても自動的にメイン名との紐づけを設定してくれるソフトウェア「Dynamic DNS Update Client(DUC)」が用意されています。
その Dynamic DNS Update Client(DUC) のインストール手順を解説いたします。
今回は、Linux 版の Dynamic DNS Update Client(DUC) をインストールしますが、Windows 版も用意されていますので、Windows に IIS をインストールし、自宅 Web サーバーを公開する場合でも No-IP が選択肢に入ってきそうですね。
Dynamic DNS Update Client (DUC) for Linux
No-IP Dynamic DNS Update Client for Linuxより引用
Our Dynamic DNS Update Client continually checks for IP address changes in the background and automatically updates the DNS at No-IP whenever it changes.
ドメイン対応と SSL 対応
「ドメイン対応と SSL 対応メニュー」に沿って、ドメイン対応と SSL 対応手順を解説いたします。
ドメイン対応
はじめに、ドメインへの対応手順を解説いたします。
no-ip 公式サイトを開きます。
[Hostname] に好みのドメイン名の入力とサブドメインを設定し、[Sign Up] をクリックします。
次に、アカウント作成画面が表示されます。
[メールアドレス]、[パスワード]、[ドメイン] を入力し、[同意] チェックボックスにチェック後、[Free Sign Up] をクリックします。
no-ip から入力したメールアドレスにメールが届きます。
[Confirm Account] をクリックします。
no-ip 公式サイトに戻ると、アカウントがアクティブ化されています。
次に、no-ip 公式サイトの [My Account] をクリックすると、[Complete your Account Configuration] が表示されます。
[Cancel] もしくは [Add Now] をクリックします。
次に、ダッシュボード画面でドメインに対象となるグローバル IP アドレスを設定します。
すぐに、ドメインがアクティブ化されます。
なお、コマンドプロンプトから、以下のコマンドを実行するとドメインから IP アドレスを引くことができます。
nslookup [ドメイン名]
no-ip でアクティブ化された直後にコマンドを実行しましたが、すぐにドメインから IP アドレスを引くことができました。
パブリック DNS の更新が早くてびっくりしました。
SSL 対応
続いて、SSL への対応手順を解説いたします。
事前準備として、[VirtualHost *:80] の [ServerName] を「ドメイン対応」で設定したドメインに変更します。
変更前は、IP アドレスでアクセスしていたため、グローバル IP アドレスを設定していました。
certbot をインストールするため、以下のコマンドを実行します。
sudo apt install certbot
次に、python3-certbot-apache をインストールするため、以下のコマンドを実行します。
sudo apt install python3-certbot-apache
python3-certbot-apache をインストールしていない場合、証明書の更新でエラーになります。
次に、apache に SSL 証明書を設定するため、以下のコマンドを実行します。
また、[メールアドレス] の入力が求められるため、使用中のメールアドレスを入力します。
sudo certbot --apache
次に、[A] を入力し、利用規約に同意します。
また、次に、[N] を入力し、Electronic Frontier とのメールアドレス共有を拒否します。
次に、HTTPS をアクティブ化するドメインを選択します。
また、次に、[2] を入力し、HTTP のリダイレクトを設定します。
[Congratulations! Your have successfully enabled …] が表示されれば OK です。
次に、証明書自動更新サービスを確認するため、以下のコマンドを実行します。
sudo systemctl status certbot.timer
証明書の自動更新サービスは実行されていました。
次に、証明書の手動更新を確認するため、以下のコマンドを実行します。
sudo certbot renew --dry-run
証明書の更新も OK でした。
これで、自動で定期的に証明書が更新され、有効期限切れになる心配はありません。
DNS 自動更新の設定
次に、DNS 自動更新の設定手順を解説いたします。
なお、この作業は root ユーザーで実施します。
作業ディレクトリを移動するため、以下のコマンドを実行します。
cd /usr/local/src/
次に、Dynamic DNS Update Client(DUC) が入った圧縮ファイルをダウンロードするため、以下のコマンドを実行します。
wget http://www.noip.com/client/linux/noip-duc-linux.tar.gz
次に、Dynamic DNS Update Client(DUC) が入った圧縮ファイルを解凍するため、以下のコマンドを実行します。
tar xf noip-duc-linux.tar.gz
次に、Dynamic DNS Update Client(DUC) が入った圧縮ファイルを削除するため、以下のコマンドを実行します。
rm noip-duc-linux.tar.gz
圧縮ファイルの削除が不要の場合は、この手順はとばしても OK です。
次に、Dynamic DNS Update Client(DUC) をビルドしインストールするため、以下のコマンドを実行します。
make install
インストール中に Wi-Fi の指定や no-ip のアカウント情報を入力します。
Wi-Fi には関連付いている番号を入力します。
また、アカウント情報には no-ip に登録したメールアドレス、そのパスワードを入力します。
次に、更新間隔を入力します。
また、更新成功時の挙動が設定できるようですので、その設定を指定します。
本稿の例では、更新時間に10分を指定しています。
また、更新成功時は何も実施しないため、[N] を入力しています。
Dynamic DNS Update Client(DUC) のインストールが完了しました。
次に、自動更新の挙動を確認するため、以下のコマンドを実行します。
noip2 -S
自動更新も確認できました。
これで、グローバル IP アドレスが変動しても安心です。
How to Install the Linux Dynamic Update Client on Ubuntu
No-IP support centerより引用
Once you have opened your Terminal window, log in as the “root” user. You can become the root user from the command line by entering “sudo -s” followed by the root password on your machine.
まとめ
以上が、NoIP からのドメインを取得 / 設定と Let’s Encrypt を使った SSL への対応手順となります。
いかがでしたでしょうか?
無料の DDNS サービスと無料の SSL 証明書を使って、Web サイトを HTTPS に対応できました。
NoIP を使ったドメインの設定も Let’s Encrypt を使った SSL の設定も、パフォーマンスの改善やセキュリティ対策に比べると簡単だったと思いました。
と、いうより、無料で、しかも、ナレッジも多く公開してくれている NoIP や Let’s Encrypt に感謝です。
両サービスともに、使いやすくとてもよいサービスだった思います。
あと、一言。
「自宅 Web サイトを公開する。」
と、言っても、大変ですよねー
Web サイトの構築、パフォーマンスの改善、セキュリティ対策、そして、ドメインの設定や SSL への対応など、パフォーマンスの改善は置いておいたとしても、安全にWeb サイトを運用するためには、多大な苦労が必要なのだとわかりました。
でも、使う人って、その苦労がわからないんですよねー
その苦労も理解せず「あーしろ」「こーしろ」と・・・
まー、愚痴はこのへんにしておいて、最後に注意点が1つだけあります。
なお、ドメインを30日ごとに更新する必要があります。もし、更新しなかった場合、削除されますので注意してください。
最後までお読みいただきありがとうございました。
では。