LoginSignup
4
4

More than 5 years have passed since last update.

AmazonLinux+Route53でLetsEncryptのDNS-01認証する

Last updated at Posted at 2018-12-26

DNS-01とは

LetsEncryptから発行されるワンタイムトークンをDNSのTXTレコードに設定する認証方式。
IP制限などでHTTP-01での認証ができない場合に有効。

Route53を使ったDNS-01を行う環境が入ったDockerイメージ

Certbotのdns_route53プラグインでRoute53を使ったDNS-01認証ができるが、CertbotはAmazonLinuxに対応していないのでDockerを使う。

手順

1. Route53のレコードを編集するIAMポリシーを作成

{
    "Version": "2012-10-17",
    "Id": "certbot-dns-route53 sample policy",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:ListHostedZones",
                "route53:GetChange"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect" : "Allow",
            "Action" : [
                "route53:ChangeResourceRecordSets"
            ],
            "Resource" : [
                "arn:aws:route53:::hostedzone/YOURHOSTEDZONEID"
            ]
        }
    ]
}
  • YOURHOSTEDZONEID は ドメインの Hosted Zone ID をコピー

Image from Gyazo

2. 作成したポリシーを証明書を作成するEC2のロールにセット

省略

3. 証明書を作成するEC2で以下を実行

# 事前にDockerをインストールしておく
yum install docker
service docker start
chkconfig docker on
docker run  -v "/etc/letsencrypt:/etc/letsencrypt" certbot/dns-route53 certonly -n --agree-tos --email [LetsEncryptアカウントメールアドレス] --dns-route53 -d [ドメイン名]
  • /etc/letsencrypt/live/[ドメイン名] ディレクトリに秘密鍵(privkey1.pem)と証明書(cert1.pem)がインストールされる
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4