Linux環境でOpenSSL証明書を生成する

Linux環境でOpenSSL証明書を生成する

1. 環境: CentOS7、OpenSSL1.1.1k。

2. コンセプト:

ルート証明書: サーバー証明書とクライアント証明書を生成するための基礎となります。自己署名証明書、つまり CA 証明書とも呼ばれます。

サーバー証明書: ルート証明書によって発行され、サーバー上で構成されます。

クライアント証明書: ルート証明書によって発行され、クライアント上で構成されます。 Web サーバー上で構成し、ブラウザーにインストールすることもできます。

対称暗号化: ファイルはパスワードで暗号化され、同じパスワードを使用して復号化されます。

非対称暗号化: 1 つのパスワードが暗号化に使用され、別のパスワード セットが復号化に使用されます。これには次の 2 つの状況が含まれます。

データの暗号化に使用する場合:公開鍵暗号化、秘密鍵復号化

ファイル署名に使用する場合: 秘密鍵署名、公開鍵署名検証

3. 手順:

1. openssl設定ファイルopenssl.cnfを表示する

vim /etc/pki/tls/openssl.cnf

2. ルート証明書CAに必要なディレクトリとファイルを作成する

/etc/pki/CA をコピーします

#設定ファイル情報に必要なディレクトリとファイルを作成します mkdir -pv {certs,crl,newcerts,private}

{serial,index.txt} をタッチします

3. 証明書の開始番号を入力します

エコー 01 >> シリアル

4. ルート証明書を生成する

# CA 秘密鍵 (ca.key) を生成する
openssl genrsa -des3 -out ca.key 2048 
# CA証明書署名要求(ca.csr)を生成する
openssl req -new -key ca.key -out ca.csr
# 自己署名CA証明書(ca.cert)を生成する
openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt

5. サーバー証明書を生成する

# サーバーの秘密鍵 (server.key) を生成する
openssl genrsa -des3 -out server.key 2048 
# サーバー証明書署名要求 (server.csr) を生成する
openssl req -new -key server.key -out server.csr
# CA 証明書を使用してサーバー CSR に署名し、サーバー証明書 (server.cert) を生成します。
openssl ca -days 3650 -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

6. クライアント証明書を生成する

# クライアント秘密鍵 (client.key) を生成する
openssl genrsa -des3 -out クライアントキー 2048
# クライアント証明書署名要求 (client.csr) を生成する
openssl req -new -key client.key -out client.csr
# CA 証明書を使用してクライアント CSR に署名し、クライアント証明書 (client.cert) を生成します。
openssl ca -days 3650 -in client.csr -out client.crt -cert ca.crt -keyfile ca.key

7. 証明書の内容を表示する

openssl x509 -in server.crt -noout -text

8. CRTをPEMに変換する

openssl x509 -in ca.crt -out ca.pem -outform PEM

openssl x509 -in server.crt -out server.pem -outform PEM

openssl x509 -in client.crt -out client.pem -outform PEM

9. 秘密鍵のパスワードを削除する

openssl rsa -in server.key -out serverkey.pem

openssl rsa -in クライアント.キー -out クライアントキー.pem

生成された証明書リスト:

Linux 環境での openssl 証明書の生成に関する詳細については、この記事で説明しました。Linux での openssl 証明書の生成に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux での OpenSSL コマンドとサンプル コード
  • Linux で openssl、swoole などの拡張機能をインストールするための詳細な手順
  • Linux openssl 基本紹介

<<:  検索ナビゲーションバー付きの CSS サンプルコード

>>:  シンプルなHTMLとCSSの使い方の詳細な説明

推薦する

CentOS8 システムをベースにした Gitlab を構築するために Docker を使用する詳細なチュートリアル

目次1. Dockerをインストールする2. GitLabをインストールする3. GitLabを初期...

Nginx に lua-nginx-module モジュールをインストールする方法

ngx_lua_module は、lua パーサーを nginx に埋め込み、lua 言語で記述され...

portainer を使用してリモート docker に接続するチュートリアル

Portainer は、Docker ホストと Docker Swarm クラスターの管理に使用でき...

Vue で AES.js を使用する詳細な手順

AES暗号化の使用データ転送の暗号化と復号化処理 --- AES.js最初のステップ: vue に ...

Vueコンポーネント登録方法の解釈

目次概要1. グローバル登録2. 現地登録3. モジュールシステムへのローカル登録概要コンポーネント...

Ubuntu 16.04 64ビット版を3つのステップで32ビットプログラムと互換性を持たせる

ステップ1: システムのアーキテクチャを確認する dpkg --print-architecture...

Docker Alpine イメージのタイムゾーン問題に対する完璧な解決策

最近、Docker を使用して Java アプリケーションをデプロイしていたときに、タイムゾーンが間...

Lua モジュールを使用して WAF を実装する Nginx の原理の分析

目次1. WAFの背景2. WAFとは3. 動作原理4. WAF機能5. WAFと従来のファイアウォ...

Navicat による MySQL パーティショニングの実践

MySQLのパーティショニングは、非常に大きなテーブルを管理するのに役立ちます。MySQLのパーティ...

中国語ウェブコンテンツを紹介する10の経験

<br /> テキスト、シンボル、リンクの 3 つの側面に焦点を当て、主に中国語で、私の...

docker nginxコンテナの起動とローカルへのマウントの詳細な説明

まず、nginx コンテナ内の構造:コンテナを入力します: docker exec -it b511...

MySQL での varchar 型の日付の比較、並べ替え、その他の操作の実装

MySQL を使用する場合、日付は通常、datetime や timestamp などの形式で保存さ...

アバター変更機能を実装するJavaScript

この記事では、アバター変更機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...