OpenShiftでアプリのSSL化が簡単すぎて焦った話

しがないC#エンジニアだった私にとって、SSL通信や証明書の管理は悩みのタネです。
ようやくどう捌くのが良いのか自分で判断できるようになってきたところです。

そんな私がOpenShiftの証明書管理を調べていて焦った話を書き留めます。

ドキュメントの確認

まずはドキュメントを見てみました。下記の辺りが該当するでしょうか。

https://docs.openshift.com/container-platform/4.8/security/certificates/service-serving-certificate.html

証明書は自動的に更新されていくとか、なんだかとても良さそうなことが書いてありますが、Yamlやコマンドがいろいろ書いてあってライトに試す方法が分かりません・・・

まあこういう時は強引にでも触ってみたほうが良いよね、という気持ちになりました。

試してみる

ちょうど関さんがRed Hat OpenShift Onlineを使用した手順を作っていたので、こちらをベースに試しました。

これで構築すると、特にオプションを指定しなければHTTPなサイトが公開されます。
URLをHTTPSに変えると、

Application is not available
The application is currently not serving requests at this endpoint. It may not have been started or is still starting.

と書かれたページが出てきます(これはこれで有難い)

OpenShiftの「+Add」のタイミングで「Advanced options」の「Show advanced Routing options」を開き、「Security」の「Secure Route」にチェックを入れてみました。

そうするとなんとなんと・・・!SSL通信に関わる設定が出てくるではありませんか!

今回は単純に公開したいので、「TLS termination」は「Edge」に、安全に公開したいので「Insecure traffic」は「Redirect」にしてみました。

その下にCertificatesで証明書に関する設定ができますが、ここは何も入れなければrouter’s default certificateなるものが使われるそうなので今回は設定しません。

「Create」を押し、アプリがビルドされるのを待ってから「Open URL」でアプリの公開URLを叩いたら、無事HTTPSのURLで開くことができました!
Insecure traffic」を「Redirect」にしているので、HTTPなURLでアクセスするとHTTPSなURLにリダイレクトされました。

超簡単で焦りました。。

まとめ

OpenShiftを使うとGUIで簡単にSSL通信なWebサイトを公開できることが分かりました。

また、ドキュメントを眺める限りは、様々なカスタマイズも可能そうです。

引き続きOpenShiftの可能性を探っていけたらと思いました。