Let’s Encrypt(ワイルドカード編)

スポンサーリンク

概要

無料で利用可能なSSL証明書Let’s Encrypt(レッツ・エンクリプト)を導入しSSL接続を可能にする
なお、SSL証明書はワイルドカードで作成する

certbotとcertbot-autoインストール

certbot-autoのインストール
古いver certbot-autoはワイルドカード利用できないため新しいcertbot-autoをインストールする。

certbotインストール
# yum -y install python2-certbot-apache

certbot-autoインストール
# cd /usr/local/bin/
# wget https://dl.eff.org/certbot-auto
--2019-07-20 15:22:08--  https://dl.eff.org/certbot-auto
dl.eff.org (dl.eff.org) をDNSに問いあわせています... 151.101.108.201, 2a04:4e42:36::201
dl.eff.org (dl.eff.org)|151.101.108.201|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 68023 (66K) [application/octet-stream]
`certbot-auto' に保存中

100%[======================================>] 68,023      --.-K/s 時間 0.04s

2019-07-20 15:22:08 (1.73 MB/s) - `certbot-auto' へ保存完了 [68023/68023]
# ls -l certbot-auto
-rw-r--r-- 1 root root 68023  7月 20 04:19 certbot-auto

# chmod a+x certbot-auto
# ls -l certbot-auto
-rwxr-xr-x 1 root root 68023  7月 20 04:19 certbot-auto
# which certbot-auto
/usr/local/bin/certbot-auto

SSL証明書発行

SSL証明書発行

certbot-auto certonly --webroot \
  -w <ドキュメントルート> -d <ドメイン名> --email <メールアドレス>

TXTレコード出力確認

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 <ドメイン名>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.<ドメイン名> with the following value:

5ny3skMx7FHNzXau_OdXeSoA5lhXPZ_Y7c2Px6V3Izw   ← DNSサーバにこのvalueをTXTレコード登録します。

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

Press Enter to Continueが表示されたらEnterキーはまだ押下しないこと!!
「DNSサーバへ出力したTXTレコードを登録」へ進む

DNSサーバへ出力したTXTレコードを登録

DNSサーバへ出力したTXTレコードを登録する
今回の場合は以下のようにDNSサーバにTXTレコードを登録する
★TXTレコード名
「_acme-challenge.<ドメイン名>」

★value
「5ny3skMx7FHNzXau_OdXeSoA5lhXPZ_Y7c2Px6V3Izw」

環境や出力結果に合わせて変更お願いしますm(_ _)m

TXTレコード状況確認

別TeraTermを開きTXTレコードを確認する

# nslookup -q=txt _acme-challenge.<ドメイン名>.
Server:         xxx.xxx.xxx.xxx
Address:        xxx.xxx.xxx.xxx#53

Non-authoritative answer:
_acme-challenge.<ドメイン名>     text = "5ny3skMx7FHNzXau_OdXeSoA5lhXPZ_Y7c2Px6V3Izw"

Authoritative answers can be found from:

上記のようにTXTレコードの反映が確認できればOKです。
※お名前ドットコムで実施した時は30分ぐらいかかりました。。。

SSL証明書発行

ようやくEnterキーを押下できます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.<ドメイン名> with the following value:

5ny3skMx7FHNzXau_OdXeSoA5lhXPZ_Y7c2Px6V3Izw   ← DNSサーバにこのvalueをTXTレコード登録します。

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue     ← Enterキー押下
Waiting for verification...
Challenge failed for domain <ドメイン名>
dns-01 challenge for <ドメイン名>
Cleaning up challenges
Some challenges have failed.

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: <ドメイン名>
   Type:   dns
   Detail: DNS problem: NXDOMAIN looking up TXT for
   _acme-challenge.<ドメイン名>

SSL証明書確認

各証明書は以下ディレクトリに格納されます

証明書
/etc/letsencrypt/live/<ドメイン名>/cert.pem

証明書+中間CA証明書
/etc/letsencrypt/live/<ドメイン名>/fullchain.pem

秘密鍵
/etc/letsencrypt/live/<ドメイン名>/privkey.pem

中間CA証明書
/etc/letsencrypt/live/<ドメイン名>/chain.pem

参考リンク

Let’s EncryptのSSL証明書をDNS認証で発行してみた。(DNSはお名前.com)
ありがとうございます

注意事項

Let’s Encryptで作成したSSL証明書の有効期間は90日間のためそれ以内にDNSレコードを更新する必要があります。
私が利用しているDDNSはお名前ドットコムを利用していますがお名前ドットコムにはAPIがないため、
ワイルドカード登録を断念しました。。。。。(だれかお名前ドットコムのAPI機能があったら教えていただきたいです。(泣)

次回は、Let’s Encrypt(個別編)( ´·ω·)つ──

CentOSInfra
スポンサーリンク
インフラエンジニア|パイナップル星人 ブログ

コメント

タイトルとURLをコピーしました