インターネットの急速な発展に伴い、セキュリティはますます私たちの注目の的となっています。 HTTPS は、贅沢なテクノロジーから現代の Web インタラクションの標準へと進化しました。これは情報保護のための重要なツールであるだけでなく、信頼と品質の象徴でもあります🛡️。ローカルの K8s 開発環境でアクセスするために HTTPS を使用する必要がある場合、TLS/SSL 証明書をどのように構成しますか? 今日は、K8s 環境で証明書に簡単に自己署名して、ローカル開発環境のセキュリティを向上させる方法をご紹介します。 1. 準備1. KindをインストールするKind の設定ファイルを生成する際に、Kind の extraPortMapping 設定オプションを利用して、ホストからノード上で実行されている Ingress コントローラーにポートを転送しました。 その役割は、ローカル ホストがポート 80/443 を介して Ingress コントローラーに要求を送信できるようにすることです。 生成された構成を使用して、K8s クラスターをローカルにインストールします。 ⚠️ extraPortMappings が設定されているため、複数の K8s クラスターをローカルにデプロイする必要がある場合は、ポートを調整するか、extraPortMappings 設定項目を削除する必要があります。 2. TraefikをインストールするTraefik Labs チャート リポジトリを Helm に追加します。 ここでは、websecure のホスト ポートを 443 に設定し、着信 HTTPS トラフィックが Traefik に正しくルーティングされるようにします。 3. Dnsmasqをインストールする/etc/hosts は単純なドメインと IP アドレスのマッピングには便利ですが、静的であり、ワイルドカードやパターン マッチングをサポートしていないため、ドメインのすべてのサブドメインに同じ IP アドレスを設定することはできません。 Dnsmasq[1]は、DHCPサービスも提供できる軽量のDNSフォワードおよびリバースキャッシュサーバーです。簡単に設定および使用できるように設計されており、特に単純な DHCP および DNS サービスが必要な小規模ネットワーク環境でよく使用されます。 Dnsmasq は、より強力で柔軟性があり、集中化されたソリューションを提供すると言えます。インストール方法は次のとおりです。 4. CFSSL/mkcertをインストールする自己署名 SSL/TLS 証明書をローカルで生成するためのツールは多数あります。ここで2つ紹介します。各ツールには独自の特性と最適な用途があります。ニーズや好みに応じてお選びいただけます。 1つ目はCFSSL[2]です。インストール方法は次のとおりです。 2番目の方法:mkcert[3]。インストール方法は以下になります。 まとめこれまでに、ローカルの K8s 開発環境でのインフラストラクチャの準備が完了しました。 Kind を通じて、ローカル Kubernetes クラスターの構築に成功しました。 Helm と Traefik を通じて、クラスターに強力なルーティングとリバース プロキシ機能を構成しました。最後に、Dnsmasq を通じて、従来の /etc/hosts 方式に代わる柔軟なローカル DNS ソリューションを提供しました。これらすべてにより、その後の TLS/SSL 証明書の構成のための強固な基盤が築かれました。 次に、次の段階に進み、K8s 開発環境で自己署名証明書を構成して、HTTPS 経由の安全なアクセスを有効にする方法を実際に検討します。好奇心を持って、私と一緒にクラウド ネイティブの神秘的な世界を探検しましょう。 🚀 2. 自己署名証明書を作成するまず、自己署名証明書を作成する必要があります。ここでは、このプロセスを完了するために CFSSL を使用することを選択します。 初期設定次のコマンドを丁寧に入力して、光沢のある設定ファイル config.json を生成します✨ 設定内容は必要に応じて若干調整できます
証明書を生成するcreate-selfsign-cert.shスクリプトに以下を記述します。 次に、次のコマンドを実行してワイルドカード ドメイン名証明書を生成します。 💡 ヒント: 実行後、次の 3 つのファイルが作成されます。 CFSSL のさらなる魅力については、公式 Web サイトにアクセスしてご自身で調べてみてください。 3. Kubernetes TLSシークレットを作成する次に、自己署名証明書と秘密鍵を TLS シークレットとして Kubernetes に保存します。 4. TLSシークレットを使用するようにKubernetes Ingressを構成するよし、これで準備はすべて完了です🎉、次はサービスを呼んで試してみましょう! K8s IngressリソースでHTTPSを有効にするためにTLSシークレットを参照します。対応するドメイン名はnginx.kind.clusterです。 5. Dnsmasqを設定するドメイン名はカスタマイズされているため、ローカルでも呪文を唱える必要があります。 ローカル IP からワイルドカード [サブ] ドメインを提供できるように、Dnsmasq 構成に次の情報を追加します。 前述のように、Kind クラスターのポートをホストにマッピングしたので、ここではクラスター ホストの実際の IP アドレスではなく、127.0.0.1 のみを構成する必要があります。 Dnsmasq は、foo.kind.cluster や bar.kind.cluster などのサブドメイン レコードの解決も試みるので、非常に便利です。 設定が完了しました。brewを使用してDnsmasqを再起動します。 また、.kind.cluster で終わるドメイン専用の DNS リゾルバも構成しました。 最後に、dig コマンドを使用して、ドメイン名解決が正しく 127.0.0.1 を指していることを確認します。 🎉 検証してみましょう。 写真 6. 自己署名証明書の信頼自己署名証明書を使用する場合の欠点は、ユーザーがこの Ingress を通じて公開されているサービスにアクセスすると、証明書が信頼できる証明機関によって発行されていないため、ブラウザに警告が表示されることです。この問題を解決するにはどうすればいいでしょうか? 実はとても簡単です。コンピュータ上で、この自己署名証明書を信頼されたルート証明書ストアに追加すると、接続が安全でない場合にブラウザで毎回警告が表示されなくなります。 macOSを例に挙げてみましょう ステップ 1: .crt ファイルをダブルクリックします。これにより、キーチェーン アクセス アプリが開きます。キーチェーン アクセスで、証明書がインポートされたことがわかります。表示されない場合は、.crt ファイルをキーチェーン アクセス ウィンドウに手動でドラッグすることもできます。 ステップ2: インポートした証明書を右クリックし、「情報を見る」を選択します。 写真 ステップ3: 「信頼」セクションを展開し、「この証明書を使用する場合」で「常に信頼」を選択します。 写真 ステップ4: 最後に検証してみましょう🎉 写真 CURL 経由で確認することもできますが、エラーは報告されなくなります。効果は以下のとおりです
上記の手順を実行すると、ローカル開発環境で自己署名証明書を信頼し、正しく使用できるようになります。 しかし、より簡単な代替手段であるmkcertがあります。これは、面倒な設定をせずにローカル開発環境で直接信頼できる証明書を作成するのに役立ち、ローカル環境の設定を大幅に簡素化します。 試してみるのもいいかもしれません。これは CFSSL を完全に置き換えることができます。ローカル開発とテストには十分です。 裏面に記入この記事では、比較的従来的なアプローチで自己署名証明書を作成しましたが、これは一部のシナリオでは真に「クラウド ネイティブ」ではない可能性があります。次の記事では、証明書の要求と更新を自動化し、最新のKubernetesエコシステムとの統合と適応性を高めるように設計された、真にクラウドネイティブな自己署名証明書方式であるCert-Manager[4]について詳しく紹介します。 🚀 参考文献[1]Dnsmasq: https://en.wikipedia.org/wiki/Dnsmasq [2]CFSSL: https://github.com/cloudflare/cfssl [3]mkcert: https://github.com/FiloSottile/mkcert [4]証明書マネージャー: https://cert-manager.io/ |
<<: Linode MarketplaceとMastodonを使って独自の分散型ソーシャルプラットフォームを構築しましょう
>>: Kaniko を使用して Kubernetes クラスターでコンテナ イメージを構築する方法
IT 業界の業界団体 CompTIA によれば、現在、企業の 80% が、オンデマンドで起動できる仮...
昨日、グループの新しい友人がキーワードランキングについて私に尋ねました。彼は、競合他社よりも外部リン...
もしinizが2017年7月にロサンゼルスに新しいAMD RyzenシリーズのVPSが追加されたとい...
インターネットが私たちの生活に深く浸透するにつれて、インターネットが変えることができる領域はますます...
私たちがマーケティング手法を見つけようと奮闘していたとき、スティーブ・ジョブズは最高レベルのマーケテ...
近年、疫病やモバイルインターネットの影響により、消費市場は数え切れないほど多くの消費者の消費行動を変...
カオス最近、共同購入サイトに関するニュースが再び人々の目に留まり始めていますが、そのニュースはすべて...
私は多くの最適化ウェブサイトで多くの記事を読みましたが、それらはすべて一般的な理論的な知識であり、誰...
原題:テンセントがマイクロソフトを禁止した「神の論理」 小斌:WeChatに利益をもたらさない公開ア...
世界トップクラスのオープンソース組織である Cloud Native Computing Found...
まず、なぜ「ウェブサイトの分析が得意であることは、初心者ウェブマスターにとって必須のスキルです」とい...
はじめに: Baidu が「トップ 10 リアルタイム ホットスポット」(Baidu ホームページの...
[51CTO.com オリジナル記事] 「デジタル経済発展の重要な指標はクラウド化の度合いです。産業...
Google の副社長であるケント・ウォーカー氏はかつて、2000 年の時点で人類史上保存されたデー...
毛沢東主席がかつてこう言ったのを覚えています。「結婚の意図がないのにデートするのは不良行為だ。」これ...