OpenSSL を使用した Kubernetes 証明書の生成の概要

OpenSSL を使用した Kubernetes 証明書の生成の概要

Kubernetes は、基本認証、トークン認証、CA 認証の 3 種類の認証をサポートしています。この記事では、CA 認証に必要な最も簡単なコマンドを記録します。

Kubernetesの構成

テスト対象バージョンは1.10ですが、このバージョンに限定されるものではありません。OpenSSL証明書では一般的な方法です。

必要な証明書

必要な証明書関連書類は以下の通りです。

CA証明書

CA証明書の秘密鍵

コマンド: openssl genrsa -out ca.key 2048

[root@host121 k8scert]# openssl genrsa -out ca.key 2048
RSA秘密鍵の生成、2048ビット長の係数
.............................................................+++
...............+++
eは65537(0x10001)
[root@host121 k8scert]#

CA証明書

コマンド: openssl genrsa -out ca.key 2048

[root@host121 k8scert]# openssl req -x509 -new -nodes -key ca.key -subj "/CN=host121" -days 5000 -out ca.crt
[root@host121 k8scert]# ls
アーカイブ ca.crt ca.key
[root@host121 k8scert]#

XXX 証明書

apiserver/ControllerManager/kubletに必要な証明書は次のように作成できます。

証明書の秘密鍵

コマンド: openssl genrsa -out server.key 2048

[root@host121 k8scert]# openssl genrsa -out server.key 2048
RSA秘密鍵の生成、2048ビット長の係数
..............................+++
..............................................................................+++
eは65537(0x10001)
[root@host121 k8scert]#

証明書署名要求ファイル

コマンド: openssl req -new -key server.key -subj "/CN=host121" -out server.csr

[root@host121 k8scert]# openssl req -new -key server.key -subj "/CN=host121" -out server.csr
[root@host121 k8scert]#

subj に設定されるサブジェクト情報は、ユーザー自身のデータです。一般的に、CN はドメイン名/マシン名/IP 名のいずれかに設定されます。たとえば、kubelet であれば、それが配置されているノードの IP になります。

証明書

コマンド: openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000

[root@host121 k8scert]# openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000
署名OK
件名=/CN=host121
CA秘密鍵の取得
[root@host121 k8scert]#

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Kubernetes オブジェクトボリュームの詳細な使用方法
  • CentOS で Rancher2 をインストールし、Kubernetes クラスターを構成するためのグラフィック チュートリアル
  • Rancher で Kubernetes 用の標準化された VMware イメージを構築する方法
  • kubernetes1.5.2 から kubernetes1.10 にアップグレードする際の主要な設定変更記録
  • Kubernetes (k8s) 入門
  • Kubernetes の応用分野の概要

<<:  MYSQL5.6.33 データベース マスター/スレーブ (マスター/スレーブ) 同期のインストールと構成の詳細 (マスター-Linux スレーブ-windows7)

>>:  React antd タブの切り替えによりサブコンポーネントが繰り返し更新される

推薦する

Reactのコンテキストとプロパティの説明

目次1. 文脈1. 使用シナリオ2. 使用手順3. 結論2. 小道具の詳細1. 子供の財産2. 小道...

ReactのEffectListの簡単な分析

目次EffectList コレクション最初のレンダリング時のEffectList EffectLis...

Linux Autofs 自動マウント サービスのインストールと展開のチュートリアル

目次1. autofs サービスの紹介2. Autofsのインストールと展開3. Autofs効果の...

マークアップ言語 - HTML を学んだ後に何を学ぶべきか?

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

JavaScriptの無限ループを検出して防止する方法の詳細な説明

目次序文for文の無限ループを修正while文の無限ループを修正要約する序文Js デッド ループはど...

HTML スペースコードの簡単な分析

HTML についてどれくらい知っていますか? 現在、基本的な HTML コードを学習している場合は、...

Linux システムで httpd の自動インストールと構成を Ansible で実装する方法

1. Ansibleのプレイブックを使用してhttpdを自動的にインストールする1) まず、Ansi...

MySQL 8.0.23のルートパスワードをリセットするための最適なソリューション

この方法は2021年2月7日に編集されました。私が使用しているバージョンは8.0.23です。事件の原...

js の toString メソッドの 3 つの機能

目次1. toStringメソッドの3つの機能2. オブジェクトを表す文字列を返す3. カスタム t...

シェルで文字列内のスペースや指定された文字を削除する方法

インターネット上には、正しい方法であっても、使用しても正しい結果が得られない方法が数多くあります。正...

Linux での SELinux を理解する方法

目次1. SELinux の紹介2. SELinuxの基本概念2.1 仕事の種類2.2. セキュリテ...

CSSアニメーションによるテーブルスクロールカルーセル効果の実装

前回の CSS 回転灯と同じ内容の CSS アニメーションの応用です。これは単なる別のアプリケーショ...

iptables の再起動後に Docker の iptables ルールの完全なプロセスが失われる

原因と結果1. ansibleコマンドを使用してジャンプサーバー上のマシンBをテストすると、次のエラ...

React HTML で react を使用する 2 つの方法

基本的な使い方 <!DOCTYPE html> <html lang="...

WeChatアプレットがスネークゲームを実装

この記事では、参考までに、スネークゲームを実装するためのWeChatアプレットの具体的なコードを紹介...