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

推薦する

MySQL 5.6 での table_open_cache パラメータの最適化と適切な構成の詳細な説明

1. はじめにtable_cache は非常に重要な MySQL パフォーマンス パラメータであり、...

HTMLタグのtarget属性の使用法

1: <a> タグを使用してページにリンクする場合、target 属性の役割は誰もが知っ...

Node.jsを理解するのはとても簡単です

目次Node.js の公式紹介Node.jsのコア開発言語ウェブ上の JavaScript と No...

MySQL で誤って削除したテーブル データを回復する方法 (必読)

バックアップがあれば、非常に簡単です。最新のバックアップ データを生成し、mysqlbinlog を...

スケルトンスクリーン効果を実現する CSS

ネットワーク データを読み込むときは、ユーザー エクスペリエンスを向上させるために、通常は円形の読み...

centos7.2 オフラインインストール mysql5.7.18.tar.gz

ネットワークが分離されているため、MySQL は yum を使用してインストールできません。ここでは...

Vueのカスタムディレクティブの詳細なガイド

目次1. カスタム指示とは何ですか? 2. 指示をカスタマイズする方法フック機能3. 応用シナリオ入...

HTMLデザインパターンの日々の勉強ノート

HTML デザインパターン学習ノート今週は主にHTMLデザインパターンを学びました。学習内容をまとめ...

vue-element-admin プロジェクトのインポートとエクスポートの実装

vue-element-admin インポートコンポーネントのカプセル化テンプレートとスタイルまず、...

ウェブページ制作でウェブフォントファイルにベクターアイコンを追加する方法

ご存知のとおり、コンピューターには 2 種類の画像があり、1 つはビットマップ、もう 1 つはベクタ...

Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...

ボリュームを使用してホストと Docker コンテナ間でファイルを転送する方法

以前、Docker コンテナとローカル マシン間のファイル転送に関する記事を書きました。しかし、この...

CSS3 を使用して入力複数選択ボックスのスタイルをカスタマイズする例

原則: まず入力要素を非表示にし、次に CSS を使用してラベル要素のスタイルを設定します (他の要...

JS で async await をエレガントに使用する方法

目次jQuery の $.ajax Webpack時代の始まり約束について深く考えるネストをなくすj...

MySQL 8.0 エラー サーバーがクライアントに不明な認証方法を要求しました 解決策

最新バージョンのMySQL 8.0.11をインストールした後、ユーザーを作成して認証します。認証され...