certbotを使って Let’s Encrypt ワイルドカード証明書を発行する(Route 53)

(2018/04/02追記あり)
先日Let’s Encryptがワイルドカード証明書に正式対応したので、certbotを使用してワイルドカード証明書を取得する方法をまとめてみた(CentOS7のサーバを利用)。

まず前提条件として・・・

  1. Let’s Encryptで証明書発行を受ける際の認証方法は複数あるが、ワイルドカード証明書は「DNS認証(DNS-01方式)」しか利用できない
  2. DNS認証を行うには、DNSエントリにTXTレコードを追加する必要がある

ということで、certbotにおけるDNS認証には別途プラグインが必要。利用しているDNSによってどのプラグインを使用するかが変わるので、ここを参考に使用するプラグインを決める。ここでは ドメイン example.jpAWS Route 53 を利用しているものとして説明する(使用するプラグインは certbot-dns-route53)。

ってことで、早速 certbot の準備から

  • yum で certbot をインストールできるよう、epelリポジトリを追加する
# yum install epel-release
  •  yum で certbotとRoute 53 DNS認証用のプラグインをインストールする
# yum install certbot python2-certbot-dns-route53

ここまでで certbot の準備は完了

そして Route 53 関連の下準備

  • AWSのWebコンソールなどから example.jp の Hosted Zone ID を確認しておく
  • 同様にWebコンソールなどからcertbot用のユーザを下記権限にて作成し、Access Key と Secret Access Key を確認しておく
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "route53:GetChange",
                "route53:ListHostedZones"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "route53:ChangeResourceRecordSets",
            "Resource": "arn:aws:route53:::hostedzone/<Hosted Zone ID>"
        }
    ]
}
  • 下記の内容で認証情報ファイルを作成して保存する(SecretAccessKeyが書かれているのでファイルの権限は適切に設定すること)
[default]
aws_access_key_id = <AccessKey>
aws_secret_access_key = <SecretAccessKey>
  • 下記コマンドを実行してワイルドカード証明書発行処理を行う
# env AWS_CONFIG_FILE=<認証情報ファイル> certbot certonly --dns-route53 -d *.example.jp --server https://acme-v02.api.letsencrypt.org/directory

(※ワイルドカード証明書はv2 apiのみの対応のため、–server オプションでエンドポイントを指定する必要がある)

これで /etc/letsencrypt/ 配下に証明書ができているはず・・・


(2018/04/02追記)

認証情報ファイルの参照順ですが・・・

  1.  環境変数 AWS_ACCESS_KEY_ID (=アクセスキー) 及び AWS_SECRET_ACCESS_KEY_ID (=シークレットアクセスキー) の値を利用
  2. ~/.aws/config (credentials) の設定値
  3. 環境変数 AWS_CONFIG_FILE に設定されているファイル

の順になります。そのため、既にaws CLIツールにて認証情報ファイルを作成しているとそちらが優先されてしまう場合がありますのでご注意ください。


dns-route53 プラグインに関する詳細はこちらから

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です