AWS Certificate Manager(ACM)に承認されるまで数日かかった話

# はじめに
お名前.comで取得したドメインを使ってEC2＋ACMの**DNS検証**でHTTPSサイトを作ろうとしたら証明書の発行に数日かかったときのことをまとめました。
この手順は、ハマった人（おそらく少ない）だけではなくて、ACMでDNS検証を使ってSSL証明書をリクエストする方にも参考になると思います。
普通にやれば数分で発行されるはずです。

# AWS Certificate Manager(ACM)とは？
[AWS Certificate Manager - AWS公式サイト](https://aws.amazon.com/jp/certificate-manager/)

サマリ

- 無料でSSL証明書が使える**（ただしELB/CloudFront/API Gatewayの利用が前提）**
- **自分で更新手続き** > **購入** > **サーバへ反映** する手間がいらない
   - 運用の手間が省けるのですごくありがたい



# 設定の流れ
AWS マネジメントコンソール を使った手順です。

**Certificate Manager**（AWS マネジメントコンソール のトップからcerと検索すると出てくる）
![0.PNG](https://qiita-image-store.s3.amazonaws.com/0/172195/a38befd5-a520-d7fa-0914-848cfdf3740c.png)
<br>

**証明書のリクエスト**
![21.png](https://qiita-image-store.s3.amazonaws.com/0/172195/d959c031-ad9a-210a-5988-9594a6647004.png)
<br>

**ドメイン名**へサイトのドメイン名を記入して**次へ**（ワイルドカード証明書もリクエストできる）

![22.png](https://qiita-image-store.s3.amazonaws.com/0/172195/f21869d4-74d7-5074-a966-68e7e0e13a4b.png)
<br>

**DNS の検証**を選んで**次へ**

![23.png](https://qiita-image-store.s3.amazonaws.com/0/172195/b547d202-32a0-c972-8a42-f76744395fe2.png)
<br>

なお、**E メールの検証**を選ぶと、取得したドメインのpostmaster@やadmin@へ承認依頼メールが飛びます。
今回このドメインのメールサーバは作っていないのでDNS検証を選びました。
<br>

**確定とリクエスト**で終了

![24.png](https://qiita-image-store.s3.amazonaws.com/0/172195/7215dd62-07c0-9876-3391-c60dae942bb0.png)
<br>

検証保留中になります。
![25.png](https://qiita-image-store.s3.amazonaws.com/0/172195/ac951d77-f225-af7b-deef-f9b520f46cae.png)
<br>

各ドメインをクリックするとCNAMEの情報が表示されます（一部マスクしてます）。
![26.png](https://qiita-image-store.s3.amazonaws.com/0/172195/99f6e6c2-2c46-191e-d611-1fb971de35a8.png)
このCNAMEをドメイン管理側（今回はお名前.com）で登録します。


## レコード設定

お名前.comへログインして該当ドメインの設定画面を表示してからの流れです。

**DNS関連機能の設定**
![onamae3.PNG](https://qiita-image-store.s3.amazonaws.com/0/172195/ec8c41a5-3fbc-a5e9-c620-57ca86a8e9d8.png)
<br>

DNSレコード設定を利用する > **設定する**
![onamae4.PNG](https://qiita-image-store.s3.amazonaws.com/0/172195/2c5dac82-da67-e192-fe30-38e84054485e.png)
<br>

**ホスト名**へACMの画面で表示された**名前**、**TYPE**をCNAME、**VALUE**に**値**を設定して**追加**
![29.png](https://qiita-image-store.s3.amazonaws.com/0/172195/6f566689-bb1e-8ccf-11e2-a9c6eed5a3fc.png)
設定を保存します。普通は数分後に承認されるはずです。

# 数日かかっても承認されない
ACMのステータスは**検証保留中**のまま数日経過。
その後確認すると**検証タイムアウト**になっていた。

# 原因
ネームサーバーの設定が正しくなくてCNAMEレコードが解決されなかったため。

お名前.comのDNS設定画面では以下のようにNSに0[1-4].dnsv.jpが設定されているけど

![onamae6.PNG](https://qiita-image-store.s3.amazonaws.com/0/172195/31a99cc5-adc7-66a9-4564-0246b40406c0.png)

実際はこうなっていた。

```
$ dig <mydomain>.info ns

;; ANSWER SECTION:
<mydomain>.info.    60    IN    NS    dns2.onamae.com.
<mydomain>.info.    60    IN    NS    dns1.onamae.com.
```
ドメイン取得するときにあやまって何かを押してしまったのかと。


調べたところ、ネームサーバーを正しく変更する必要がありました。
なお、DNS検証の**リクエスト猶予は72時間らしいです。超えたら再度リクエストを出せばOK**です。

# ネームサーバーを変更
お名前.comのレコード設定から、以下のチェックを入れて設定を反映します。
![onamae1.png](https://qiita-image-store.s3.amazonaws.com/0/172195/99cf7dec-8417-8b1f-c368-7f8dd7287c82.png)

これでネームサーバーが**dns[1-2].onamae.com**から**0[1-4].dnsv.jp**へ変更されました。

```
$ dig www.<mydomain>.info ns

;; ANSWER SECTION:
<mydomain>.info.    60    IN    NS    04.dnsv.jp.
<mydomain>.info.    60    IN    NS    01.dnsv.jp.
<mydomain>.info.    60    IN    NS    02.dnsv.jp.
<mydomain>.info.    60    IN    NS    03.dnsv.jp.
```

数分後に無事発行されました。

![28.png](https://qiita-image-store.s3.amazonaws.com/0/172195/80339fe2-641b-cca8-32b6-4afaf0ceae9c.png)

# ELBへ設定

今回はELBを使うので、ELBの追加画面からACMで作成した証明書を指定すればOKです。
![27.png](https://qiita-image-store.s3.amazonaws.com/0/172195/b7e9fed1-08b7-481d-f895-ead1b6ee47a2.png)

# さいごに：SSL証明書の意義とか

- 通信を暗号化することだけではなく、いま自分がアクセスしているサーバは（信頼のある）**認証機関によって実在証明されていることを示すことに意義がある。**
    - 暗号化のためだけに導入すると思っている人が案外多い。
    - 暗号化しているから安全ということはない。悪意あるユーザがSSL証明書を使ってあなたと暗号化通信することだってできる。
- よって、信頼できる認証機関があれやこれやとコストをかけてドメインの審査をして、パスしたコモンネームへSSL証明書を発行する。
   - 電話が来て実在確認されることだってある。EVはもっと厳しい審査があるはず。
- 使っている暗号化のアルゴリズムは大手とそれ以外で同じとして、大手のSSL証明書がお高いのは認証局の信用に対するコストだと思う。
    - **安すぎると大丈夫かなと思うのが人間の心理。**