Ubuntuサーバはローカル内のNASとの兼ね合い上、標準外ポートでアクセスするようになっている。
標準外ポートのまま、Let’s EncryptのCertbot+Webrootを使用してSSL証明書を取得する方法をググってみたものの、やはりどうしてもHTTP80 or HTTPS443ポートを開放する必要があったので、別の手段を探してみた。
自動で更新することもできなさそうなので、このページに私自身の覚えとしてメモ。
DNSチャレンジによる認証
# certbot certonly --manual -d XXXXXXX.xxx --preferred-challenges dns
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for XXXXXX.com
--------------------------------------------------------------------------
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.
Are you OK with your IP being logged?
--------------------------------------------------------------------------
(Y)es/(N)o: y
--------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.XXXXXX.com with the following value:
[キー]
Before continuing, verify the record is deployed.
--------------------------------------------------------------------------
Press Enter to Continue
TeraTermで上記コマンドを実行してキーが表示されるので、キーをコピーする。
Press Enter to Continueのまま放置してDNSの設定画面に。

VALUE-DOMAINのDNS設定画面を開き、以下の通りレコードを追加する。
txt _acme-challenge.[サブドメイン] [コピーしたキー]
設定が反映されるまで5分~10分程度待ってから、TeraTerm側でEnterキーを押すと認証が始まる。
※早すぎるとDNS設定が反映されないまま認証が始まってしまい認証に失敗する。
コーヒーでも飲みながらゆっくり待ちましょう。
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/XXXXXX.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/XXXXXX.com/privkey.pem
Your cert will expire on 2019-05-15. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew all of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
更新時はこれを実行するかは未定だが、Apaceh2のdefault-ssl.confを編集してApache2を再起動する。
(default-ssl.confの有効化はぐぐってね!)
$ sudo ls -l /etc/letsencrypt/live/XXXXXX.com/
<記載省略/以下のファイルが存在することを確認する>
cert.pem
chain.pem
fullchain.pem
privkey.pem
$ sudo vi /etc/apache2/sites-available/default-ssl.conf
<下記の通りパスを設定する>
SSLCertificateFile /etc/letsencrypt/live/XXXXXX.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ XXXXXX.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/XXXXXX.com/chain.pem
$ sudo systemctl restart apache2
$
これでOK!
参考サイト
以下のサイトを参考に設定いたしました。とても分かりやすかったです。
- Let’s EncryptのSSL証明書をDNS認証で発行してみた。(DNSはお名前.com) https://qiita.com/aquiq/items/db4eb8c7106f109819f0
- Apache2 : SSL/TLS の設定 https://www.server-world.info/query?os=Ubuntu_18.04&p=httpd&f=8