MinikubeとIngressで自己署名証明書を使ったHTTPS通信を実現する
この記事では、ローカル環境のMinikubeを使い、自己署名証明書(オレオレ証明書)とIngressでHTTPS通信を実現する流れを見ていきます。
前編としてローカルでIngressを使ったHTTPS通信を確認し、後編ではGoogleCloud上にk8sリソースを作成して同様にHTTPS通信ができるところまで確認します。前編後編を通してk8sでのネットワーク(L4, L7)について少し詳しくなろうという試みです。
1. はじめに:なぜHTTPSが必要なのか?
現代のウェブサービスにおいて、HTTPSは必須です。ユーザーとサーバー間の通信を暗号化することで、データの盗聴や改ざんを防ぎ、安全性を確保します。
HTTPS通信を扱う際、TLS終端(TLS Termination)という概念が重要になります。これは、HTTPSの暗号化・復号の処理をどこで行うか、というもの。アプリケーション(Pod)が直接処理することも可能ですが、一般的にはIngressなどのロードバランサで一括して行うのが効率的です。これにより、アプリケーションはシンプルなHTTP通信に集中できます。
2. 全体構成図
今回作っていく環境の構成図です
右側がminikubeを使ったk8sクラスタになります。
各アイコンについて簡単に表にしました。
今回の主役は「Ingress」というリソースです。構成図からもわかるように外部からの通信と、クラスタ内部の通信の境目にあるリソースで、つまりLBのようなものになります。
これがクラスタから見て外部からの通信部分をHTTPS通信で行い、ここで暗号化された通信を復号して、以降の処理をhttpで行うようにします。
3. 環境準備
まずはMinikubeをインストールし、Kubernetesクラスターを起動します。
minikube start次に、Ingressコントローラを有効にします。minikubeではローカル(端末)からクラスタへの通信はデフォルトではできません。クラスタから見て外部の端末とのやりとりをしたい場合は明示的にIngressコントローラを使えるようにする必要があります。IngressコントローラはIngressリソースのルールを解釈し、実際のトラフィックをルーティングする役割を担います。
minikube addonsopensslコマンドが利用可能かどうかも確認しておきましょう。(無ければインストールします)
openssl version4. 自己署名証明書の作成
HTTPS通信には、秘密鍵と証明書のペアが必要です。今回は、開発・検証目的のため、自分で署名する自己署名証明書(オレオレ証明書)を作成します。
作業ディレクトリ作成 (任意)
mkdir -p ~/minikube-tls
cd ~/minikube-tls秘密鍵(tls.key)の生成
2048ビットのRSA秘密鍵を生成します。
openssl genrsa -out tls.key 2048証明書署名要求(tls.csr)の生成
証明書に含める情報を入力します。Common Name (CN)には、後ほどアクセスする際のホスト名(例: my-nginx.local)を指定することが最も重要です。
openssl req -new -key tls.key -out tls.csr
質問に対して、Common Nameをmy-nginx.localとして回答します。
自己署名証明書(tls.crt)の生成
秘密鍵とCSRを使って、自己署名証明書を作成します。有効期間は365日に設定します。
…
記事の続きは下のURLをクリック!
https://rightcode.co.jp/blogs/53104
エンジニア積極採用中です!
現在、WEBエンジニア、モバイルエンジニア、デザイナー、営業などを積極採用中です!
採用ページはこちら:https://rightcode.co.jp/recruit
社員の声や社風などを知りたい方はこちら:https://rightcode.co.jp/blogs?category=life
フリーランスエンジニア大募集中!
現在、「WEBエンジニア」「フロントエンジニア」「データサイエンティスト」など、様々な職種のフリーランスエンジニア様を募集中です。まずは以下よりお気軽にご応募ください!
採用ページはこちら:https://itanken.com/register
社長と一杯飲みながらお話しませんか?(転職者向け)
特設ページはこちら: https://rightcode.co.jp/gohan-sake-president-talk
もっとワクワクしたいあなたへ
現在、ライトコードでは「WEBエンジニア」「モバイルエンジニア」「ゲームエンジニア」、「デザイナー」「WEBディレクター」「営業」などを積極採用中です!
ライトコードは技術力に定評のある受託開発をメインにしているIT企業です。
有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。
- もっと大きなことに挑戦したい!
- エンジニアとしてもっと成長したい!
- モダンな技術に触れたい!
現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?
ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。
- ライトコードの魅力を知っていただきたい!
- 社風や文化なども知っていただきたい!
- 技術に対して熱意のある方に入社していただきたい!
一度、【Wantedly内の弊社ページ】や【コーポレートサイト】をのぞいてみてください。
Wantedly:https://www.wantedly.com/companies/rightcode
コーポレート:https://rightcode.co.jp/