テスト用にletsencryptを使ってawsのインスタンスでデフォルトに振られてるDNSで証明書取ろうとしたらエラーになった。

まぁ、当たり前なんですけどね。ダメ元チャレンジしたけどだめだった。

 テスト環境

こちらよりAMIを起動、letsencryptによるSSL証明書の取得が簡単設定出来ます。

自分のサーバーで入れたいって人は別で頑張って。

 SSL証明書の発行

基本的には以下に従う流れで発行してみる。

高速WordPressAMIでLet’s Encryptを使用して無料でSSL証明書を発行する

[root@ip-172-xxx-xxx-xxx ~]# cat /opt/dehydrated/domains.txt
ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com

こちらには、インスタンスに最初から紐づけられているDNSを指定。

インスタンスの情報からパブリック DNS (IPv4)を見てみると、「〜〜.compute.amazonaws.com」みたいなのがあるはず。

このDNSはアマゾンさんがデフォルトで関連付けてくれているもの。DNS取得済みならばletsencryptで無料のSSL証明書発行できるはず!!

[root@ip-172-xxx-xxx-xxx ~]# /opt/dehydrated/dehydrated --register --accept-terms
# INFO: Using main config file /opt/dehydrated/config
+ Generating account key...
+ Registering account key with ACME server...
+ Done!

まぁ、ここまではOK.次に発行。

[root@ip-172-xxx-xxx-xxx ~]# /opt/dehydrated/dehydrated -c --accept-terms
# INFO: Using main config file /opt/dehydrated/config
 + Creating chain cache directory /opt/dehydrated/chains
Processing ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com
 + Creating new directory /opt/dehydrated/certs/ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com ...
 + Signing domains...
 + Generating private key...
 + Generating signing request...
 + Requesting new certificate order from CA...
  + ERROR: An error occurred while sending post-request to https://acme-v02.api.letsencrypt.org/acme/new-order (Status 400)

ですよねーエラーで返ってきたのはこんな感じ。

{
  "type": "urn:ietf:params:acme:error:rejectedIdentifier",
  "detail": "Error creating new order :: Policy forbids issuing for name",
  "status": 400
}

Policy forbids issuing for name on Amazon EC2 domain

こことかでも言われてますが、まぁ、そりゃあお前一時的にしか使わないし変わるかもしれないDNSで証明書くれてやるかよっちゅーことですわ。

もちろんroute53とかでドメイン取ったらちゃんといけますけどね。デフォルトのこのDNSはアクセステストくらいの使いみちにしておきましょう。