💰
MydnsとLet's Encryptを使ってお金をかけずに独自ドメインのSSL化を実施する手順
MydnsとLet's Encryptを使ってお金をかけずに独自ドメインのSSL化を実施する手順
環境
Red Hat Enterprise Linux 8.5 (Ootpa)
Webサーバ:Nginx
独自ドメインの取得
Mydnsを利用して無償ドメインを取得する
MyDNSユーザ登録
1つのMasterIDで1つのドメインが利用可能(同じIPのサブドメインも作れる)
MasterIDと異なるIPのサブドメインを作る場合は、ChildIDが必要
- Mydnsへアクセス
- 「詳しく見る」をクリックすると上部にメニューが出るので、「JOIN US」をクリック
- 新規登録画面で氏名等をよしなに入力し、「確認」ボタンをクリック
氏名・住所は適当でも行ける - 登録したメールアドレスに以下のようなメールがくる
IDとパスワードは変更できない
[MyDNS.JP] ユーザー登録が完了しました。
******様
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.
ドメイン取得
- MyDNSの上部メニュー「LOG IN」に、メールに書いてあったIDとパスワードを入力してログイン
- 「DOMAIN INFO」の「Domain」に、取得したいドメインを入力し、「確認」をクリック
ページ上の方の「Free Sub-Domain List」に書いてあるサブドメインを付けた形(example.mydns.jpみたいな形)で入力
ドメイン情報が登録されると「[MyDNS.JP] ドメイン情報の登録が完了しました。」というメールがくる。 - 「IP ADDR DIRECT」の「IPv4 Address」に、ドメインと紐づけるIPアドレスを入力し、「確認」をクリック
- nslookupなどでドメインとIPが紐づいているか確認しましょう
IPアドレス通知設定
MyDNSには以下のような制約があるため、定期的にサーバからMyDNSにIPアドレスを通知する設定を行う
・回線が固定IPであってもIPアドレスの通知が必要です。
・一週間以上IPアドレスの通知がないと、エラーサイトに誘導します。
・一ヶ月以上ご利用がないと、全てのデータを削除しますのでご注意ください。
- 該当のサーバにログインし、cronを設定する
以下は毎日10:20に通知する設定。時間は任意で
$ crontab -e
20 10 * * * curl https://[MasterID or ChildID]:[IDに対応するパスワード]@ipv4.mydns.jp/login.html
証明書の取得
Let's Encryptを利用して無償のSSL証明書を取得する
certbotの設定と証明書取得
- 該当のサーバにログインし、snapdをインストールする (epelレポジトリが未インストールの場合はそれも)
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf install snapd
- snapdを起動し、certbotをインストールする
# systemctl start snapd
# snapd install --classic certbot
- /usr/bin/にcertbotのシンボリックリンクを作成する
# ln -s /snap/bin/certbot /usr/bin/
- certbotを使ってドメインに証明書を設定する
(以下はサブドメイン無しの場合。サブドメイン有りの場合は参考URL4つめを参照)
# certbot certonly -d example.mydns.jp
- /etc/letsencrypt/live/ドメイン名/ に証明書のシンボリックリンクが作成される
証明書の設定
- Nginxのconfファイルのssl_certificateとssl_certificate_keyに証明書のパス設定する
ssl_certificate /etc/letsencrypt/live/ドメイン名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ドメイン名/privkey.pem;
- Nginxを再起動する
# systemctl restart nginx
以上で設定完了。サイトにhttpsでアクセスし、証明書が有効となっているか確認する
Discussion