💡

MydnsとLet's Encryptを使ってお金をかけずに独自ドメインのSSL化を実施する手順

2022/05/12に公開約3,100字

MydnsとLet's Encryptを使ってお金をかけずに独自ドメインのSSL化を実施する手順

環境

Red Hat Enterprise Linux 8.5 (Ootpa)
Webサーバ:Nginx

独自ドメインの取得

Mydnsを利用して無償ドメインを取得する

MyDNSユーザ登録

1つのMasterIDで1つのドメインが利用可能(同じIPのサブドメインも作れる)
MasterIDと異なるIPのサブドメインを作る場合は、ChildIDが必要

  1. Mydnsへアクセス
  2. 「詳しく見る」をクリックすると上部にメニューが出るので、「JOIN US」をクリック
  3. 新規登録画面で氏名等をよしなに入力し、「確認」ボタンをクリック
    氏名・住所は適当でも行ける
  4. 登録したメールアドレスに以下のようなメールがくる
    IDとパスワードは変更できない

<details><summary>[MyDNS.JP] ユーザー登録が完了しました。</summary>

******様
MyDNS.JP管理システム

			   ユーザー登録が完了しました

このたびはMyDNS.JPにご登録いただきましてありがとうございます。

以下に登録情報を添付しておきますので、無くさないように保管願います。

MasterID & Password : 
	mydns*****	**********

Child ID & Password :
	None


IPv4 :
	POP3(S)/IMAP4(S)/FTP(S) Server = ipv4.mydns.jp
	HTTP-BASIC URL = http(s)://ipv4.mydns.jp/login.html

IPv6 :
	POP3(S)/IMAP4(S)/FTP(S) Server = ipv6.mydns.jp
	HTTP-BASIC URL = http(s)://ipv6.mydns.jp/login.html

※注意

・回線が固定IPであってもIPアドレスの通知が必要です。
・一週間以上IPアドレスの通知がないと、エラーサイトに誘導します。
・一ヶ月以上ご利用がないと、全てのデータを削除しますのでご注意ください。

その他、ご不明な点がございましたら「CONTACT US」からご連絡下さい。

MyDNS.JP Admin & Support.

https://www.MyDNS.JP/

</details>

ドメイン取得

  1. MyDNSの上部メニュー「LOG IN」に、メールに書いてあったIDとパスワードを入力してログイン
  2. 「DOMAIN INFO」の「Domain」に、取得したいドメインを入力し、「確認」をクリック
    ページ上の方の「Free Sub-Domain List」に書いてあるサブドメインを付けた形(example.mydns.jpみたいな形)で入力  
    ドメイン情報が登録されると「[MyDNS.JP] ドメイン情報の登録が完了しました。」というメールがくる。
  3. 「IP ADDR DIRECT」の「IPv4 Address」に、ドメインと紐づけるIPアドレスを入力し、「確認」をクリック
  • nslookupなどでドメインとIPが紐づいているか確認しましょう

IPアドレス通知設定

MyDNSには以下のような制約があるため、定期的にサーバからMyDNSにIPアドレスを通知する設定を行う

・回線が固定IPであってもIPアドレスの通知が必要です。
・一週間以上IPアドレスの通知がないと、エラーサイトに誘導します。
・一ヶ月以上ご利用がないと、全てのデータを削除しますのでご注意ください。

  1. 該当のサーバにログインし、cronを設定する
    以下は毎日10:20に通知する設定。時間は任意で
$ crontab -e
20 10 * * * curl https://[MasterID or ChildID]:[IDに対応するパスワード]@ipv4.mydns.jp/login.html

証明書の取得

Let's Encryptを利用して無償のSSL証明書を取得する

certbotの設定と証明書取得

  1. 該当のサーバにログインし、snapdをインストールする (epelレポジトリが未インストールの場合はそれも)
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf install snapd
  1. snapdを起動し、certbotをインストールする
# systemctl start snapd
# snapd install --classic certbot
  1. /usr/bin/にcertbotのシンボリックリンクを作成する
# ln -s /snap/bin/certbot /usr/bin/
  1. certbotを使ってドメインに証明書を設定する
    (以下はサブドメイン無しの場合。サブドメイン有りの場合は参考URL4つめを参照)
# certbot certonly -d example.mydns.jp
  • /etc/letsencrypt/live/ドメイン名/ に証明書のシンボリックリンクが作成される

証明書の設定

  1. Nginxのconfファイルのssl_certificateとssl_certificate_keyに証明書のパス設定する
ssl_certificate     /etc/letsencrypt/live/ドメイン名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ドメイン名/privkey.pem;
  1. Nginxを再起動する
# systemctl restart nginx

以上で設定完了。サイトにhttpsでアクセスし、証明書が有効となっているか確認する

参考URL

Discussion

ログインするとコメントできます