CISの起点証明書を利用したCode Engineのカスタムドメイン設定を試してみる

# CISの起点証明書を使ったCode Engineのカスタムドメイン設定を試してみる

Cloud Internet Service（CIS）と組み合わせ、Code Engineのアプリをカスタムドメインで公開しようと考えている方に朗報です！

これまで、CIS で注文された起点証明書は公開 CA およびトラステッド CA によって署名されていないため、それらの証明書を Code Engine内のドメイン・マッピングに使用することはできず、独自にCA証明書を用意する必要がありました。

が！これまで、CIS で注文された起点証明書（オリジン証明書）が利用できるようになったため早速試してみます！

## 確認する内容

- Cloud Internet Serviceにて発行可能な起点証明書をカスタムドメインに設定し、カスタムドメインを利用したURLでCodeEngineのアプリにアクセスできること
（webapp.cis.satokota-sandbox.comというURLでアクセスできるように設定します）

## 事前準備

- 独自ドメイン
- Cloud Internet Service(CIS)のインスタンス
  
    CISのインスタンス作成や、ドメインの登録の部分はこちらのQiitaをご参照ください
    
    [IBM Cloud CISの動作確認(1) -初期導入編- - Qiita](https://qiita.com/khoshina/items/e9b397f498330faefdd9)
    
- Code Engineのアプリ
  
    

## 設定の流れ

1. Cloud Internet Serviceにて起点証明書を作成する
2. Code EngineでDomain Mappingを設定する
3. Cloud Internet ServiceにてDNSを設定する
4. 最終確認　

## 1. Cloud Internet Serviceにて起点証明書を作成する

初っ端から今回のメイン、**セキュリティ > 起点 > 注文** をクリックし、起点証明書を作成します

![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136580/3e24c092-528f-06d0-c1d6-d41fd3f0d9cf.png)

ワイルドカードを含めた証明書で、期限はデフォルトの**１５年**！を選び、注文します

（期限は７日、３０日、９０日、１年、２年、３年、１５年が選べます）

![Untitled 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136580/4bb9e1bd-dc1a-5488-ff9d-2ffd712958fc.png)

作成された起点証明書や秘密鍵はこのあとのDomein Mappingで利用するのでメモしておきます

**秘密鍵はこのタイミングしかコピーできないので忘れずに！**

![Untitled 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136580/d96d8c5c-6811-2371-fdfb-1133846cd141.png)

## 2. Code EngineでDomain Mappingを設定する

事前に以下の設定でアプリを作成しています（サンプルアプリを利用、インスタンス数は１で固定）

このアプリにカスタムドメインでアクセスできるように設定していきます

![Untitled 3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136580/86cb2c0c-8d6a-e2f1-4943-4902ed87651d.png)

アプリの画面から、ドメイン・マッピングを選択し、作成をクリックします

![Untitled 4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136580/231d8d86-8309-a9c4-7302-bdf029efc70d.png)

CISで作成した起点証明書を利用してドメイン・マッピングの作成を行います

TLS シークレット

- 証明書チェーン　　：　CISで作成した起点証明書
- 秘密鍵　　　　　　：　CISで作成した秘密鍵

ドメイン・ネームとターゲット・コンポーネント

- ドメイン・ネーム　：　公開に利用したいURL（私は[webapp.cis.satokota-sandbox.com](http://webapp.cis.satokota-sandbox.com/)と設定します）
- CNAME ターゲット：　このあとのCISのDNS設定で利用するのでメモしておく

![Untitled 5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136580/195c7cf5-054f-b910-8eca-26b05b23ebc5.png)

カスタム・ドメイン・マッピングにレコードが追加され、準備完了となればOKです

![Untitled 6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136580/2330056b-d1a6-4b28-55fe-be386b75f6c3.png)

## 3. Cloud Internet ServiceにてDNSを設定する

CISにて、信頼性 > DNS とクリックしDNSの設定画面を表示させ、DNSレコードの追加 をクリックします

![Untitled 7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136580/68a7a4b1-453a-7ced-edac-74588925f593.png)

Code Engineのドメイン・マッピングの作成時にメモしたCNAME ターゲットを利用して、DNS設定を行います

「レコードの追加」ダイアログにて必要事項を入力します

タイプ　　　　　：　CNAME

名前　　　　　　：　webapp

別名のドメイン名：　ドメイン・マッピングの作成時にメモしたCNAME ターゲット（私の場合はcustom.132biqzn57cc.us-south.codeengine.appdomain.cloud）

![Untitled 8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136580/de763afd-7dd2-2d9d-0170-f1b9180e4399.png)

この用にDNSレコードが追加されていればOKです。

今回の確認内容とは直接関係ないですが、CISのセキュリティ機能を利用できるようにプロキシーをONにしておきます

![Untitled 9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136580/7abf6365-be83-2231-383f-d1c632ec7b97.png)

## 4. 最終確認

それでは、最後に設定したカスタムドメインのURLでアクセスします

問題なく、アプリが表示されました！

![Untitled 10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136580/b70d68be-88b2-6d93-96cb-4422be01479d.png)

CISの起点証明書が利用できるようになったため、従来の方法と比べ、外部での証明書発行の手間やコスト削減ができそうです

発行できる証明書の期限も１５年と長い期間が選択できるため便利に感じました