2022年12月23日
インスタンスの作成はとりあえずできました。最終的にwebサイトを公開することになるのでApache的なものをインストールしようかなと思います。
予定してる仕事で使うサーバーソフトはnginxというソフトです。言われてみるとエラーページとかでこの文字見たことあるような…
ということでsshを開いてインストールしてみます。テストでやってキャプチャは取り損ねてしまったのですが、そんなに難しくはなさそう。
インスタンス作成の際に選んだOSはUbuntuなのですが、NginxはUbuntuのデフォルトのリポジトリで利用できるため、aptパッケージングシステムを使用してこれらのリポジトリからインストールできます。
sudo apt update
sudo apt install nginx
一旦最新に更新して、そのままインストール指示してやれば一瞬でインストール完了です。
これで/var/www/html/
のディレクトリにアクセスするとアクセスできるようになった…はずだったのですが…
webルートのディレクトリを見てみるとindex.html
じゃなくてindex.nginx-debian.html
というファイルになってました。なのでこれをindex.htmlに変更します。それでも変わらない…
ためしにhttpsをhttpに変更してみると、
アクセスできました。httpもhttpsもアクセスできるように設定したはずなのに…
スポンサーリンクLet’s Encryptで証明書を発行します。これも超簡単にできるっぽい。
sudo yum install epel-release
sudo yum install certbot
certbot certonly --webroot -d XXXX #XXXX は、IPアドレス
なんかエラー…必要なソフトが入ってない?これまたリポジトリからインストールできるみたいなので、
sudo apt install certbot
でインストールして再度やってみると…あれ?そもそもyumが使えないって言われてる…
別で調べてみるとこのcertbotというのは、
プラグインを介してSSL証明書を取得するさまざまな方法を提供します。Nginxプラグインは、必要に応じてNginxの再設定と設定の再読み込みを処理します。このプラグインを使用するには、次を入力します。
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-20-04-ja
とのこと。いろいろ置いといて別のところのコマンドそのまま入れてみます。
sudo certbot --nginx -d XXXX -d www.XXXX
あれ…?IPアドレスじゃLet’s Encrypt発行できないんだ?だんだん面倒な話になってきました。
無料でドメインが取れるというサイトがあるとのことでそちらで取得しました。ITの発展していない国のドメインを暫定的に使えるようにしてくれるサイトみたいですね。
アクセスが増えて値打ちが出たり、だれかが有料で購入した際には使えなくなったり有料になるみたいです。
取り方は簡単でした。別の記事でまたまとめようと思います。
とりあえず適当に「plando-test.tk」というドメインを取得して、IPアドレスと紐付けしました。
できましたね。軽く感動…
先ほど実行したcertbotというコマンドをあらためて実行してみます。するとまた違うエラーが…
nginxのプラグインが存在しないとのこと。どこかに書いてあったけど端折ったやつですね。
sudo apt install certbot python3-certbot-nginx
これを実行します。python3って書いてあるけどpythonと何か関係があるのでしょうか?知らないことだらけですね…
正常にインストールできたみたいなので再度SSL設定を実行。
メールアドレスを入れろと出てきたので入れて実行。
利用規約みたいなのを見て同意してくださいと出たので同意。
なんかニュース送るぞみたいな画面。間違えてyにしちゃった。どんなメールが来るんだろうか…
httpでアクセスしたときにhttpsにリダイレクトするかどうかを選択する画面。2でリダイレクトさせます。
できたっぽいですね。更新したらhttpsに飛びました。ここまでやってlaravelと関係なかったらどうしよう…
Let’s Encryptは3ヶ月ごとに更新が必要で、それを自動でやる方法があったので実行しておきます。
Let’s Encryptの証明書は90日間のみ有効です。これは、ユーザーが証明書の更新プロセスを自動化することを奨励するためです。インストールした
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-20-04-jacertbot
パッケージは、systemdタイマーを追加することでこれを処理します。 このスクリプトは1日に2回実行され、有効期限の30日以内にある証明書を自動更新します。
ちゃんとポリシーがあってこの決まりがあるんですね。これ面倒なんですよね。
sudo systemctl status certbot.timer
これを実行すると…
今回はhttpsを経由してwebルートをブラウザで表示させるところをやりました。
laravelインストールしても表示できなければ意味がないので。果たしてこれが関係あるのかどうかはまだわかってませんが、今勉強してるツールを使えばレンタルサーバー借りなくてもホームページが作れるということがわかりました。これはけっこう大きいかも。どのくらいアクセスがあったら課金されるんでしょうね。
次回はlaravelインストールしていきたいと思います。
お仕事のご依頼やご相談、弊社サービス内容に関してなど、お気軽にご相談ください。