はじめに
なんとなく、TLSの導入って面倒の割にリターンが少ないような印象を抱いていたのですが、certbotというツールのおかげで2020/12/06現在驚くべきほどに簡単になっていたので共有しておきます。
あんまりしっかりした記事じゃないですが、とりあえず防備録として書いておきます。
環境
- OS: Ubuntu 20.04
- nginx
準備・前提
前提として、httpでurlを使ってアクセス出来るwebサービスが自宅サーバーで可動してる状況を想定しています。これはちなみにDDNSとかでも大丈夫でした。私が実験をしたときには、いくつかのサービスがdockerコンテナ上で可動しており、Nginxがドメイン名を見て、適切なportにアクセスをフォワードするような構成になっていました。
また、webサービスを提供中のサーバーにはsshでアクセスできるものとします。また、各webサービスにはポート80で接続できるものとします。
手順
- webサービスを提供している自鯖にsshで接続
- snapdのインストール参考
$ sudo apt update
$ sudo apt install snapd
- certbotのインストール
sudo snap install --classic certbot
- コマンド実行用のシンボリックリンクの作成
sudo ln -s /snap/bin/certbot /usr/bin/certbot
- certbotコマンドの実行
sudo certbot --nginx
なんと、これで終わりです。後は、certbotがメールアドレスの入力や、各種規約への同意を促して来ますが、聞かれたとおりに返信していくだけで、なんとNginx上の設定まで自動的に行ってくれます。
ただし、一点だけ注意として、ポートの80と443は開放しておいてください。私はこの443の開け忘れに気が付かず、少し時間を無駄にしてしまいました。
自宅サーバなどで、ルータからポートフォワーディングをしている場合には、443についての設定を追加することもお忘れなく。
また、今回は、Nginx on Ubuntu20.04のケースでしたが、それ以外の場合にも、公式で以下のようにして、手順の説明を見ることができます:
- certbotの公式サイトメニューからcertbot instructionにアクセス
- My HTTP website is running ... の部分でお使いのツールを選択