もりちゃん こと 森田です。
今回は、IBM Bluemixを使って独自ドメイン+SSL通信を試した際にハマった話をしようと思います。
前提として、
- 独自ドメインは設定済み
- 証明書はアップロード済み
- なのに、アクセスしてもアップロードした証明書が使われていない
こんな人が対象になります。
アップロードとかその辺は、他のページをみてね。
先に結論
DNSにレコードを追加する際に、「CNAME」は使わず、「A」を使う。
これだけです。
たどり着くまで
公式っぽいとこ
IBM Bluemix - アプリの保護
ここを見ると、こう書いてありました。
カスタム・ドメインを使用する場合、SSL 証明書を提供するために、 以下の地域エンドポイントを使用して、Bluemix で組織に割り振られた URL 経路を指定します。
US-South: secure.us-south.bluemix.net
EU-GB: secure.eu-gb.bluemix.net
AU-SYD: secure.au-syd.bluemix.net
これに則ってDNSの設定をするとこんな感じ
RECORD NAME | TYPE | TTL | CONTENT |
---|---|---|---|
app01 | CNAME | 7200 | secure.us-south.bluemix.net |
これでアクセスすると・・・。
えっ・・・。
『この接続ではプライバシーが保護されません』・・・。
証明書は「*.mybluemix.net」のまま・・・。
ここで1日使いました。
これ無理じゃね??
そこに現れた良さげなstack overflowの質問と回答
Custom SSL cert not working in Bluemix
Question
We purchased a certificate from GoDaddy and I have uploaded the public, private and intermediate keys into the domain management dialog. When I view the cert it says "unknown" and still serves the *.mybluemix.net cert.
I used openssl to convert the crt and key into a p12 to verify they match and the -modulus/md5 checks match.
is there something on the Bluemix side I have to do, or does it just take 24 hrs to work?
Answer
By changing our DNS from "CNAME" to "A" the Bluemix server gave us the correct cert.
つまり、 「CNAME」じゃなくて「A」でやれ と・・・。
「A」使えとか言われてもIPわからねーよ!
とりあえず、nslookup
してIPを調べましょう。
多分こんな感じ。
$ nslookup secure.us-south.bluemix.net
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: secure.us-south.bluemix.net
Address: 75.126.81.68
IPアドレスGETだぜ!
ここまでの情報をもとにDNSを再設定
RECORD NAME | TYPE | TTL | CONTENT |
---|---|---|---|
app01 | A | 7200 | 75.126.81.68 |
これでおしまい
なんでこれで出来るの?(推測)
CNAMEだとmybluemix.netとしてアクセスした体になって、
*.mybluemix.netが使われるんじゃないかな?と思います。
※違ったら指摘頂けると助かります
最後に
Bluemixについての日本語ページはそこそこある感じですが、
欲しいところが抜けていたりして、ちょっとハマりました。
公式ページにすら罠が貼られているとは・・・。
本質を理解して使っていかないと、惑わされていくばかりですね。
気をつけよっと。