Rancher今回はRancherを本番運用で利用するにあたって必ず押さえておきたい、SSL/TLS証明書の扱いについてご紹介したいと思います。近年はHTTPSでウェブサービスを提供することが当たり前になってきました。それはブラウザでの閲覧だけでなく、スマートフォンアプリ内からWebAPIを使用する際も、HTTPSではないサービスに対してそのままの設定では通信すらできなくなってきています。SSL/TLS証明書の発行には、1ドメインあたり最低でも年間1000円程度の費用がかかります。サービス提供者にSSL/TLS証明書を利用することが望まれる中、これらを発行するための環境はどのように変化してきているでしょうか。Managerというサービスで証明書を発行・管理することができるようになりました。Encryptという、”すべてのWorldWideWebにTLS接続ができるようにすること”を目的としたプロジェクトが2016年4月12日に正式にサービスインしました。上記は共に無料でSSL/TLS証明書が発行できます。これらのサービスによりTLS接続の敷居は格段に低くなったと言えます。証明書発行の自動化と制限それでは、従来費用がかかっていたものがなぜ無料で利用できるようになったのでしょうか。それは証明書の発行作業を自動化するため、ACMEプロトコルという形で手続きが整理されたことが大きな理由として挙げられます。このような無料証明書発行の仕組みには従来になかった制限が含まれます。CloudFront以外のサービスで利用することはできない。Encryptで作成した証明書の有効期限は90日と短い。Encryptはワイルドカード証明書の発行をサポートしていない。証明書取得のAPIにRateLimitsがある。証明書の種類はDVのみ対応。Encryptですが、Rancherに備わっている証明書の管理機構と組み合わせることで、非常に強力な仕組みに一変します。Rancher環境で証明書の発行&更新を自動化それでは実際にRancherでどのように設定していくのか見ていきましょう。Managerというカタログがエントリーされていますが、今回はこちらは使いません。Serviceを利用します。こちらはカタログ一覧には出てこないので、Rancherの[管理者]->[設定]からカスタムカタログとして登録します。ドメインを指定してスタックを起動するカスタムカタログとして登録できたら、HTTPS通信を行いたいドメインを指定してスタックを立ち上げます。複数のドメインを指定する際は、カンマの後にスペースを入れないように注意してください。カタログの初期設定ではSTAGING=trueとなっています。本番運用の際はSTAGING=falseに変更してください。challenge用のエンドポイントを用意します。エンドポイントはドメインごとに設定します。“リクエストホスト”がドメインで、”対象”が先ほど立ち上げたスタックのnginxサービスです。パスには/.well-known/を埋めます。challenge受けつけることで、証明書が手に入ります。パブリックなRancherロードバランサは専用のスタックを用意することをお勧めします。のちの回でBlue/Greenデプロイについてもご紹介したいと思います。Serverに証明書を登録してくれます。証明書がドメイン単位で作成されており、有効期限が3ヶ月(90日)であることがわかります。Rancherロードバランサに証明書を設定する証明書が取得できたことを確認したら、Rancherロードバランサに証明書を設定します。メインを証明書を選択し、代替証明書を必要に応じて追加します。設定ができたらロードバランサをアップグレードします。証明書の更新タイミングを確認する最後に更新タイミングを確認しておきます。初期設定では有効期限が切れる14日前に更新してくれるようです。これで短い証明書の有効期限でも自動で更新し続けてくれるので安心です。Encryptを組み合わせることで、セキュアな本番環境を手軽に構築することができました。従来の自動化されていない方法でこれらを設定した場合、待ち時間なども含め最低でも1日以上(決済や更新手続きを考えるともっと)を要すると思います。本番環境は重厚な構成になりがちですが、このような自動化を積極的に取り入れて運用の効率化を目指すことが重要ではないでしょうか。次回はBlue/Greenデプロイの基本構成についてご紹介したいと思います。検...アーカイブ2017年7月2017年6月2017年5月2017年4月カテゴリーAWSBigDataRancherServerTerraformカプセルクラウドについて負荷分散、セキュリティ、DevOps、インフラコスト削減など豊富な課題解決パターンでお客様のAWS導入支援を行うマネージドサービスです。サービス一覧はこちらから。スーパーソフトウエアはAWSパートナーネットワーク(APN)のコンサルティングパートナーです。CapsuleCloudはAWSクラウド導入支援のマネージドサービス。link="https://www.youtube.com/watch?v=hln55FEspG0"][/vc_column][/vc_row]。