前回「Acmesmith で証明書発行を試す – その1」で で filesystem に保存する方法を試してみました。
今回は AWS S3 に保存するテストを行ってみます。KMS はまだ使いません。bucket 名は BUCKET-NAME
として進めます。
aws s3
コマンドでも操作できるように IAM policy を設定します。README に書いてある policy には s3:GetBucketLocation
がないために aws s3
コマンドではアクセスできませんでした。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::BUCKET-NAME" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::BUCKET-NAME/*" } ] }
acmesmith.sh の storage
を S3 用に書き換えます。
認証情報は aws-cli の ~/.aws/credentials
を使うのでここには書きません。region
は ~/.aws/config
の値は使われないので指定が必要です。
endpoint: https://acme-v01.api.letsencrypt.org/ storage: type: s3 bucket: BUCKET-NAME region: ap-northeast-1 use_kms: false challenge_responders: - route53: {} account_key_passphrase: certificate_key_passphrase:
前回作成したアカウントの account.pem
が手元にあるのでこれを S3 にコピーしておきます。(新たに作成 (register) しても問題ありません)
$ aws s3 cp account.pem s3://BUCKET-NAME/account.pem $ aws s3 ls s3://BUCKET-NAME/ 2016-02-07 17:28:05 1679 account.pem
後は同じですね。
$ bundle exec acmesmith authorize www2.teraoka.me $ bundle exec acmesmith request www2.teraoka.me $ aws s3 ls s3://BUCKET-NAME/ PRE certs/ 2016-02-07 17:28:05 1679 account.pem $ aws s3 ls s3://BUCKET-NAME/certs/ PRE www2.teraoka.me/ $ aws s3 ls s3://BUCKET-NAME/certs/www2.teraoka.me/ PRE 20160207-032600_***********************************/ 2016-02-07 13:25:50 51 current $ aws s3 ls s3://BUCKET-NAME/certs/www2.teraoka.me/20160207-032600_***********************************/ 2016-02-07 13:25:49 1797 cert.pem 2016-02-07 13:25:50 1675 chain.pem 2016-02-07 13:25:50 3472 fullchain.pem 2016-02-07 13:25:50 1679 key.pem