暑い日が続きますね。GLASSのエンジニア森です。庭のヒマワリにつぼみができて咲くのが待ち遠しいです。
今回は直近の案件でConoHa VPSにWAFを導入した際のハマりどころを共有したいと思います。
ConoHaのWAFは既存のWebサーバにインストールするモジュール型WAFではなく、別サーバ型WAFなのです。そのためSSLやDNS設定は注意点がありました。
導入構成
前述のとおりConoHa VPSのWAFは、レンタルサーバでよくあるWebサーバにモジュールを入れる方式ではなく、WAF用サーバからのリバースプロキシでWebサーバの通信をフィルタする形式です。
そのため、以下の点でモジュールタイプと違いがあります。
- DNSのAレコードをWAFサーバに向ける必要がある
- WAFサーバ側にもSSL証明書を設定する必要がある
問題1:SSLなしでWAFを起動 → ブラウザアクセス不可
最初はあまり深く考えず、モジュールタイプのようにConoHa管理画面の指示に従い、DNSを設定し、WAFをONにしました。
しかし、ブラウザでアクセスするとエラーが出て表示できませんでした。
モジュールタイプのWAFでは、ブラウザ→Webサーバ(この中でWAFが動作する)という通信になるため、WebサーバにだけSSLが導入されていれば、通信路が暗号化されます。しかし、別サーバタイプのWAFでは、ブラウザ→WAF→Webサーバと通信が行われるので、Webサーバだけでなく、WAFにもSSL証明書が必要です。

WAF用のSSL証明書は上記管理画面から導入するのですが、Let’s Encryptのような無料SSL証明書は選択できず有償のGlobalSignの「クイック認証SSL」一択です。費用が掛かるため注意してください。
問題2:SSL購入時のDNSエラー
SSL購入をクリックすると、次のエラーが表示されました。
失敗しました。
NotificationChackDomainNameServer実行
ConoHaのネームサーバーに設定してください。
調べると、ConoHa VPSのVer.2 / Ver.3の違いが原因でした。
ConoHa VPSのネームサーバー
ConoHaのVPSにはVer.2とVer.3があります。今回のサイトは新規に作ったものだったので、VPSサーバ、ドメイン、DNS設定すべてを新しい方のVer.3で用意していました。
そのため、ドメインのネームサーバには以下Ver.3のものが設定されていました。
【Ver.3用ネームサーバ】a.conoha-dns.comb.conoha-dns.org
しかし、ConoHaの管理画面のWAFの設定には以下ネームサーバを指定するように指示がありました。
ns-a1.conoha.ions-a2.conoha.ions-a3.conoha.io
WAFの設定手順には明記されていませんが、実はこれはVer.2時代のネームサーバです。
以下のようにドメインの画面からネームサーバの設定を行います。

手順通りではこれで終わりですが、これでは動きません。
ハマりポイント
実はConoHaの画面でドメインのネームサーバー指定をVer.2用に変更するだけでは不十分です!
該当のネームサーバ(つまり、Ver.2の環境)に対してDNS情報を改めて設定してあげる必要があります。
つまり、以下の追加作業が必要です。
- ネームサーバーをVer.2用に変更(先ほどの手順)
- DNS管理画面で「Ver.2表示」に切り替える
- Ver.3で使っていたAレコードやCNAMEなどをVer.2側にも手動で登録する


この「DNS画面でVer.2に切り替えてVer.3と同じレコードを登録する」という作業に気づかずかなり時間を取られました…
Ver.2時代では管理画面記載の手順で問題なかったと思われますが、Ver.3になったときにこのWAFの手順の改定が漏れてしまっているものと思います。
これを行うことでSSL証明書購入時のチェックを正常に通過できるようになり、証明書申請画面に進めます。
(おまけ)発行されるSSL証明書はwwwありなし両対応
今回のサイトはwwwなしのドメインで運用していました。しかし、SSL購入画面ではコモンネームが「www付きドメイン」で固定表示されていて変更できなかったため少し不安でしたが、実際にはwww無しドメインにも有効な証明書が発行されました。

まとめ
- ConoHa VPSのWAFではWAF側SSLが必須(追加費用が発生)
- ConoHaの指示通りネームサーバーを設定しても、Ver.2用DNSゾーンにレコードを登録しないとSSL購入できない
- SSL購入画面ではwww付きドメインがコモンネームに表示されるが、www無しにも対応した証明書が設定される
今回はConoHaのWAF導入に際して、ヘルプデスクとやり取りしながら結構な時間を消費したので、この情報が同じ問題で困っていらっしゃる皆様の役に立てばと思います。

株式会社GLASS CTO。2010年、株式会社日立製作所にてIT新技術の調査・検証、Project Management Office、システム開発、マーケティング業務に携わる。2017年、株式会社Webios 取締役副社長 / CTO に就任。2018年、GLASS開発チームに参画。
AWS,GCPでのクラウドシステム開発、Ruby,PHPでのスクラッチ開発、CMS,ECパッケージでのサイト構築(WordPress / WooCommerce, MovableType, EC-CUBEなど)、kintoneでのシステム開発などに携わっている。
