BLOGTIMES
2018/04/24

Cloudflare を使って Let's Encrypt からワイルドカード証明書取得する

  dns  letsencrypt  ssl  cloudflare  tutorial 
このエントリーをはてなブックマークに追加

先月からLet's Encrypt がワイルドカード証明書の発行を開始しているので、重い腰を上げて取得&自動更新を組んでみました。

今回はサーバは CentOS 7 環境、DNS は Cloudflare であると仮定します。

Cloudflare の API キーを取得しておく

Let's Encrypt でワイルドカード証明書を取得する場合には認証方法は DNS-01 を使う必要があり、更新などを自動的に行うためには API 等で動的に変更ができる DNS サーバが必要になります。AWS の Route 53 などでもできると思いますが、今回は Cloudflare を利用しました。

My Profile を開き、Global API Key のところにある View ボタンを押して API キーを取得しておきます。
Your API Key - Cloudflare を使って Let's Encrypt からワイルドカード証明書取得する

必要なソフトウェアのインストール

epel が有効になっていれば、作業に必要となる certbotpython2-certbot-dns-cloudflare は yum でインストールできます。

yum -y install certbot python2-certbot-dns-cloudflare

証明書の取得

以下のスクリプトで証明書が取得できるはずです。
証明書は /etc/letsencrypt/live にあるので、必要なものを使ってください。

BASEDIR=/opt/cloudflare DOMAIN=example.com MADDR=user@example.com APIKEY=0000000000000000000000000000000000000 mkdir -p $BASEDIR chmod 700 $BASEDIR cat <<EOS > $BASEDIR/credentials.ini dns_cloudflare_email = $MADDR dns_cloudflare_api_key = $APIKEY EOS chmod 600 $BASEDIR/credentials.ini certbot certonly \ -m $MADDR \ --agree-tos \ --non-interactive \ --dns-cloudflare \ --dns-cloudflare-credentials $BASEDIR/credentials.ini \ --dns-cloudflare-propagation-seconds 30 \ --server https://acme-v02.api.letsencrypt.org/directory \ -d $DOMAIN \ -d *.$DOMAIN

証明書がうまく取得できていれば、Cloudflare の Account Settings にあるAudit Log に以下のような TXT レコードを追加して、それを削除したようなログが残っているはずです。
Audit Log - Cloudflare を使って Let's Encrypt からワイルドカード証明書取得する

証明書の更新

以下のようなシンプルなコマンドで証明書は更新できます。
これは初回の取得時に config ファイルが生成されているためです。

certbot renew

cron 等に仕込んで1日1回実行されるようにしておくと良いと思います。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10130
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン