Azure DNS で CAA Record を追加する

Facebook にシェア
Pocket

ドメインに対する証明書を発行できる機関を指定することで意図しない第三者からの証明書発行を防ぐための仕組みがCAAレコードです。

以前SymantecがGoogle先生を怒らせた結果生まれたのがこのレコードなんですが、みんな大好きQualys SSL LabsのSSL Server Testでも表示されるので気になる項目です。

A+!!(ドヤァ)

私はAzure DNSを利用していますので、Azure DNS上でのCAAレコードの設定方法について調べて実践しました。

Azure DNSでのCAAレコード対応

Azure DNSは2017年11月にCAAレコードに正式対応しました。
対応した旨はAzureのブログに掲載されています。

Azure DNSはCAAレコードに対応したものの、2018年8月末時点でAzure Portalの画面からはCAAレコードの追加・削除・変更等はできない状態です。
CAAレコードを操作するためにはPowerShellから実施する必要があります。

レコードタイプ一覧にCAAがない(リージョンで違ったりするのかな)

PowershellでのCAAレコード登録

AzureDNSにCAAレコードを登録するのはざっくり以下の手順です。

  1. AzureにPowerShellで接続
  2. CAAレコード用のConfigを作る
  3. CAAレコードを作る

手順を追って解説します。

AzureにPowerShellで接続

PowerShellを開いて以下コマンドを実行し、Azureのリソースマネージャーに接続します。

Connect-AzureRmAccount

※AzureRMが未インストールの場合は先にモジュールをインストール
Install-Module AzureRM
Connect-AzureRmAccount

ブラウザと同様の認証窓が出るので認証を実施し、PowerShellにAzureのテナント情報等が表示されれば接続成功です。

CAAレコード用のConfigを作る

New-AzureRmDnsRecordConfigを利用してCAAレコードの設定を作ります。
設定内容は証明書発行を許可する証明局を指定するissue、ワイルドカード証明書発行を許可する証明局を指定するissuewild、何かあったときの連絡用アドレスを指定するiodefの3つです。


$caaconf = @()
$caaconf += New-AzureRmDnsRecordConfig -CaaFlags 0 -CaaTag "issue" -CaaValue "symantec.com"
$caaconf += New-AzureRmDnsRecordConfig -CaaFlags 0 -CaaTag "issuewild" -CaaValue ";"
$caaconf += New-AzureRmDnsRecordConfig -CaaFlags 0 -CaaTag "iodef" -CaaValue "mailto:hogehoge@example.com"

CAAレコードを作る

New-AzureRmDnsRecordSetを利用してレコードを登録します。

New-AzureRmDnsRecordSet -ResourceGroupName iotaker -ZoneName iotaker.jp -Name test -RecordType CAA -ttl 3600 -DnsRecords $caaconf

Name : test
ZoneName : iotaker.jp
ResourceGroupName : iotaker
Ttl : 3600
Etag : ************************************
RecordType : CAA
Records : {[0,issue,symantec.com], [0,issuewild,;], [0,iodef,mailto:hogehoge@example.com]}
Metadata :

CAAレコードが作成できました。


~$ dig test.iotaker.jp CAA
0 issue "symantec.com"
0 issuewild "\;"
0 iodef "mailto:hogehoge@example.com"

外から名前を引くと上記のように応答が返ってくることがわかります。

Facebook にシェア
Pocket