自宅サーバーのSSL(TLS)化に必要なサーバー証明書を、Let’s Encryptから取得します。対象となるURLはNoIP.comの有料プランで取得したDDNS(ダイナミックDNS)のもので、myhome.ddns.net のような形式です。DDNSのアドレスで取得できるのか不安でしたが、問題なくできたのでまとめておきます。
環境
特筆すべき点のない、普通の自宅サーバーです。
OS
|
Ubuntu Server 18.04.2 (64bit)
|
nginx
|
1.14.0 (Ubuntu)
|
certbot
|
0.23.0
|
手順
nginxをセットアップし、インターネットからTCP 80ポートでnginxのドキュメントルートにアクセスできるようにしておきます。
NoIP.comなどでDDNSのアドレスを取得し、IPを設定します。
ここからはサーバーでの作業です。
Let’s Encryptの証明書取得ツールである「certbot」をインストールします。
sudo apt update
sudo apt install certbot
あとは以下のコマンドを実行するだけ(当然ですが my-home-server.ddns.net をご自分のものに置き換えて)
sudo certbot certonly --webroot -w /var/www/html/ -d my-home-server.ddns.net
-w オプションでnginxのドキュメントルートを指定しています。環境に合わせて変えてください。
問題なければ、-w オプションで指定したディレクトリに認証用ファイルが作成され、それをネットからHTTPでLet’s Encryptのサーバーが読みに来て、確かにこのアドレスの持ち主であると確認するようです。
完了すると「Congratulations! Your certificate and chain have been saved at:~」と表示されるので、表示された証明書の保存先をメモっておきます。
あとはその証明書をサーバーで使用する設定をするだけです。私の場合はこんな感じ。
nginx.conf
server {
ssl on;
listen 443;
server_name my-home-server.ddns.net;
root /var/www/html;
ssl_certificate /etc/letsencrypt/live/my-home-server.ddns.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my-home-server.ddns.net/privkey.pem;
~~以下略~~
以上、Let’s EncryptでDDNSのアドレス用のサーバー証明書を取得する手順でした。
コメント
コメントを投稿