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の使い方の詳細な説明

推薦する

シリアルポート使用時のvue-electronの問題解決

エラーは次のとおりです:キャッチされない TypeError: 未定義のプロパティ 'mod...

Vue の img の src 画像アドレスの動的スプライシングの問題について

Vue での img の動的スプライシングを見てみましょう。src 画像アドレス、具体的な内容は次の...

ウェブ開発で遭遇した問題と経験

<br />以下は開発中に遭遇した問題と、そこから得た経験です。デバッグに時間がかかりま...

アニメーションとトランジションの違い

CSS3アニメーションとJSアニメーションの違いJSはフレームアニメーションを実装しますCSS3はト...

MySQL インストール図の概要

MySQL 5.5 のインストールと設定方法のグラフィックチュートリアルMySQL 5.5 のインス...

Nginx で Angular プロジェクトを展開する際の落とし穴

コンパイル後にAngularプロジェクトをNginxにデプロイする方法をオンラインで検索すると、ほと...

deepin 2014 システムに MySQL データベースをインストールする方法

Deepin 2014 のダウンロードとインストールDeepin 2014 のダウンロードとインスト...

Linux システムをバックアップする docker コマンドの詳細な説明

tar バックアップ システム sudo tar cvpzf backup.tgz --exclud...

Linux で MySQL スケジュールタスクを実装する方法

前提: ストアド プロシージャは、毎日午後 10 時から午前 5 時まで 10 分ごとに実行されます...

HTML におけるスクリプトの配置に関する簡単な説明

以前は、スクリプトは HTML 内のどこにでも配置できると思っていましたが、今日、要件に取り組んでい...

JSON.parse と JSON.stringify の使い方の詳細な説明

目次JSON.パースJSON.parse 構文リバイバーパラメータJSON.parse の機能その他...

Docker コンテナで ASP.NET Core を実行する手順

最近は学ぶべき知識が多すぎて、どれを先に学べばいいのかわかりません。このブログはもともとxamari...

CentOS7 で MySQL データベースにリモート接続できない理由と解決策

序文最近、仕事で問題が発生しました。 Centos7 システムでは MySQL にリモート接続できな...

MySQL の一時テーブルと派生テーブルについての簡単な説明

派生テーブルについてメイン クエリに派生テーブルが含まれている場合、または SELECT ステートメ...

MySQL トリガーの追加、削除、変更、クエリ操作の例

この記事では、例を使用して、MySQL トリガーの追加、削除、変更、およびクエリ操作について説明しま...