LoginSignup
5
5

More than 5 years have passed since last update.

JavaScriptでSSL証明書をリクエストする(AWS SDK + Amazon Certificate Manager)

Last updated at Posted at 2016-06-17

全部JavaScriptでどうにかしちゃおうというものぐさAWSシリーズ再開です。

今回はAmazon Certificate Manager(以下ACM)の証明書をJavaScriptで取得します。

必要最小限のコード

index.js
var AWS = require('aws-sdk');

var acm = new AWS.ACM({
    apiVersion: '2015-12-08',
    accessKeyId: "ACCESS_KEY_ID",
    secretAccessKey: "SECRET_ACCESS_KEY",
    region: "REGION"
});

var params = {
  DomainName: "YOUR_DOMAIN_NAME",
  DomainValidationOptions: [
    {
      DomainName: "YOUR_DOMAIN_NAME",
      ValidationDomain: "YOUR_SUBDOMAIN_NAME"
    },
  ]
};
acm.requestCertificate(params).promise().then(
    (data) => {
        console.log(data);
    }
).catch(
    (err) => {
        console.log(err, err.stack);
    }
);

参考になるかわからないメモ

ACMはメール認証オンリーです。
認識メールの送信先ですが、「DomainValidationOptions」の方のDomainNameに入れたドメインを使った以下のアドレス+ whoisに登録されたメールアドレスに送信されます。

admin@example.com
administrator@example.com
hostmaster@example.com
postmaster@example.com
webmaster@example.com

ValidationDomainにサブドメインを入れておくと、

admin@subdomain.example.com
administrator@subdomain.example.com
hostmaster@subdomain.example.com
postmaster@subdomain.example.com
webmaster@subdomain.example.com

にもメールを送信する様子です。サブドメイン特に使わない様子であれば全部同じ値でいいと思います。

「どのメアドも受信できねーよ!」という方は、S3とSESとRoute53を使ってメールをインターセプトする方法があるのでそれを参考にしてください。ちなみにここも頑張れば自動化できそうです。(ただしつらい)

戻り値

nodeをCLIから実行すると、以下のようになります。

$ node auto_acm.js 
{ CertificateArn: 'arn:aws:acm:us-east-1:999999999999:certificate/aXXXXXX-99xx-99x9-9x99-x999x9999x99' }

ACMのarnが返ってきてますね。
おそらくこれを使って、このままCloudFrontやELBに証明書設定するスクリプトを書けというお告げだと思いますので、引き続きものぐさシリーズを続けていきたいと思います。

続き→JavaScriptでCloudFrontにACMの証明書を追加する

5
5
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
5
5