Member-only story

cert-manager経由でKubernetes IngressでLet’s EncryptのSSL証明書を使用する(前半)

gavin.zhou
Nov 9, 2020

--

この記事は長いので2つに分けてお送りします。今回が前半です。

この記事では、Let’s Encrypt(および他のサービス)が提供する証明書の発行と更新を、cert-managerアドオンを使ってKubernetes Ingressで自動化する方法を紹介します。といっても、まずは問題点を簡単に紹介するところから始めます。

HTTPS in a nutshell

1990年代初頭に開発されたHTTPプロトコルは、私たちの日常生活に欠かせないものとなりました。今日、私たちはこれなしでは一日たりとも生きられません。しかし、ユーザーとウェブサーバーの間で情報をやりとりする際には、基本的なレベルのセキュリティすら提供していません。そこで、HTTPS(「S」はここでは「セキュア(安全)」を意味します)が登場します。HTTPS では、交換されたデータは SSL/TLS を使用して暗号化されます。この一連のプロトコルは、プライバシーとデータ完全性(データインテグリティ)を保護する点で優れていることが証明されており、業界では積極的に推進されています。

例えば、Googleは2014年から「どこでもHTTPS」を呼びかけています。検索結果に優先順位をつける際には、サイトが安全で暗号化された接続を使用しているかどうかを考慮しています。このようなプロパガンダ(特定の思想・世論・意識・行動へ誘導する意図を持った行為の事)はすべて一般ユーザーにも影響を与えます。現代のブラウザは、安全でない接続や無効なSSL証明書に対してユーザーに警告しています。

個人サイトのための証明書は数十ドルかかるかもしれません。しかし、それを買うことが必ずしも正しいことではありません。幸いなことに、2015年後半から、f Let’s Encrypt (LE) 証明書という形で無料の代替手段があります。この非営利団体は、インターネット全体における手間のかからない暗号化を現実のものにするために、Mozillaの愛好家によって作られました。

証明書局は、90 日間有効なドメイン検証済み証明書(市場で入手可能な最も基本的なもの)を発行しており、複数のサブドメインに対して、いわゆるワイルドカード証明書を取得することも可能です。

自動証明書管理環境(ACME)プロトコル(Let’s Encrypt用に特別に設計されています)に記載されているアルゴリズムは、証明書を取得するために使用されます。これにより、エージェントは、HTTPリソース(いわゆる「HTTP-01チャレンジ」)またはDNSレコード(「DNS-01チャレンジ」)をプロビジョニングすることで、ドメインのコントロールを証明することができます。

--

--

No responses yet