Linux
 Computer >> コンピューター >  >> システム >> Linux

OpenSSLを使用してLinuxでSSL証明書を生成する方法

OpenSSLを使用してLinuxでSSL証明書を生成する方法

SSL / TLS証明書を生成するプロセスは、多くのLinuxシステム管理者にとって一般的なタスクです。幸い、管理者でなくても、多くのLinuxディストリビューションにデフォルトでインストールされているオープンソースツールであるOpenSSLを使用して簡単に管理できます。ここでは、OpenSSLとは何か、それをインストールする方法、そして最も重要なこととして、OpenSSLを使用してシステムでSSLおよびTLS証明書を生成する方法について説明します。

OpenSSLとは何ですか?

OpenSSLは、ネットワークトラフィックの暗号化のためのオープンソースSSLおよびTLS実装を提供するためにOpenSSLプロジェクトによって開発されたライブラリです。さまざまなUnixベースのディストリビューションですぐに利用でき、証明書、RSA秘密鍵の生成、および一般的な暗号化関連のタスクの実行に使用できます。

自己署名SSL証明書の制限

OpenSSLを使用してSSL証明書を生成する場合、それは「自己署名」と見なされます。これは、SSL証明書が認証局(CA)からではなく、独自の秘密鍵で署名されていることを意味します。

そのため、SSL証明書は「信頼」できず、公開サイトには使用しないでください。使用すると、ユーザーはブラウザから証明書に関する警告を表示する可能性があります。

自己署名証明書は、ローカル開発や、インターネットに面していないバックグラウンドで実行されているアプリに役立ちます。

または、LetsEncryptを使用するか、ComodoCAなどの信頼できる機関によって検証された証明書を取得することもできます。

インストール

ほとんどのLinuxディストリビューションには、デフォルトでOpenSSLのバージョンがすでに組み込まれています。そうでない場合は、簡単にインストールできます。

aptを使用して、UbuntuとDebianにインストールできます。 コマンド:

sudo apt install openssl

CentOS(またはその代替)では、yumを使用してインストールできます コマンド:

sudo yum install openssl

Webサイトから「.tar.gz」ファイルとして簡単にダウンロードすることもできます。

基本的な使用法

OpenSSLがインストールされたので、プログラムが提供する基本的な機能のいくつかを見ることができます。

まず、OpenSSLのインストールに関するバージョンおよびその他の関連情報を表示します。

openssl version -a
OpenSSLを使用してLinuxでSSL証明書を生成する方法

提供されているマニュアルを確認できます:

openssl help
OpenSSLを使用してLinuxでSSL証明書を生成する方法 構成ファイルを使用した証明書の生成

OpenSSLを使用した証明書の生成は、さまざまな方法で可能です。そのうちの1つは、組織に関する詳細を指定する構成ファイルを使用することです。

まず、「config.conf」という構成ファイルを作成し、Nanoを使用して編集します。

sudo nano example.conf

構成ファイルの内容の例を次に示します。

[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
x509_extensions= v3_ca
distinguished_name = dn
 
[dn]
C = US
ST = California
L = Los Angeles
O = Org
OU = Sales
emailAddress = [email protected]
CN = www.org.test.com
 
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true
 
[req_ext]
subjectAltName = @alt_names
 
[alt_names]
DNS.1 = test.example.com

これをコピーしてファイルに貼り付け、組織の情報を反映するために必要な変更を加えることができます。

OpenSSLを使用してLinuxでSSL証明書を生成する方法

次に、RSA秘密鍵を生成する必要があります。これは、ルート証明書の生成に使用されます-:

openssl genrsa -out example.key 2048

-out この場合、フラグは、生成されるキーの名前を指定するために使用されます。 RSAキーのデフォルトである2048ビットのキーサイズも指定されています。

OpenSSLを使用してLinuxでSSL証明書を生成する方法

また、証明書署名要求(CSR)を生成する必要があります:

openssl req -new -key example.key -out example.csr -config example.conf

この場合、-key フラグは、RSAキー、-outを指定するために使用されます フラグは、CSRファイルの名前と-configを指定します フラグは、構成ファイルの名前を指定するために使用されます。

この後、最終的な証明書を生成するために使用されるルート証明書を生成できます。

openssl req -x509 -sha256 -nodes -new -key example.key -out example.crt -config example.conf

このルート証明書を生成する過程で、-sha256 フラグは、メッセージダイジェストとしてSHA256を指定するために使用されます。

これで、最後のステップとして、最後に次のように入力して証明書を生成できます。

openssl x509 -sha256 -CAcreateserial -req -days 30 -in example.csr -extfile example.conf -CA example.crt -CAkey example.key -out final.crt

-CA フラグはルート証明書、-CAkeyを指定します フラグは秘密鍵と-extfileを指定します 構成ファイルの名前を指定します。 「final.crt」ファイルは、必要なSSL証明書になります。

OpenSSLを使用してLinuxでSSL証明書を生成する方法 構成ファイルなしで証明書を生成する

または、構成ファイルなしでOpenSSLを使用して証明書を生成することもできます。

RSA秘密鍵を生成することから始めることができます:

openssl genrsa -out example.key 2048

次に、CSRを生成する必要があります:

openssl req -new -key example.key -out example.csr

CSRを生成するときに、組織に関する質問に回答するように求められます。

OpenSSLを使用してLinuxでSSL証明書を生成する方法

最後に、証明書自体を生成できます:

openssl x509 -req -days 30 -in example.csr -signkey example.key -out example.crt
OpenSSLを使用してLinuxでSSL証明書を生成する方法 キーと証明書の検証

キーと証明書は、OpenSSLを使用して-checkで簡単にチェックおよび検証できます。 フラグ:

openssl rsa -check -in example.key
OpenSSLを使用してLinuxでSSL証明書を生成する方法

証明書署名要求を確認できます:

openssl req -text -noout -in example.csr

および証明書も:

openssl x509 -text -noout -in example.crt
OpenSSLを使用してLinuxでSSL証明書を生成する方法 よくある質問

1。それでもHeartbleedについて心配する必要がありますか?

Heartbleed(CVE-2014-0160)は、2014年にOpenSSLで見つかった古い脆弱性です。TLSサーバーとOpenSSLを実行しているクライアントの両方が影響を受けました。パッチは発見から数日後にすぐにリリースされました。OpenSSLの最新バージョンを実行している限り、この脆弱性は2022年に心配する必要はありません。

DebianおよびUbuntuベースのシステムでOpenSSLを使用している場合は、次のコマンドを実行することでいつでも更新できます。

sudo apt update && sudo apt upgrade openssl

2。 SSL証明書は有効期限が切れるまでどのくらい続きますか?

これは、証明書を生成するときに選択した値によって異なります。これは、-daysを使用して指定できます 証明書を生成するときにフラグを立てます。


  1. KaliLinuxを使用してAndroidフォンにアクセスする方法

    Androidスマートフォンは、多くの場合、ほとんどの商用IoTガジェットへのゲートウェイです。 Nest Smokeアラームは、関連するAndroidアプリを介して管理されます。温度を制御するためのネストサーモスタットもそうです。スマートロック、ドアベルカム–ほとんどすべてのスマートデバイスにAlexaまたは他のマスターアプリからアクセスできます。誰かがそのようなAndroid携帯にリモートアクセスできるとしたらどうでしょうか?これは不可能だと思いますか?このために、KaliLinuxの「metasploit」を使用してAndroidフォンへのバックドアエントリを作成する方法の基本的なデモを

  2. LinuxでGPGキーを生成する方法

    非表示にしておきたいファイルやメッセージはありますか?それらを安全に保つために、GPG暗号化キーを使用する必要があります。 Linuxを実行している場合、GnuPGがインストールされている限り、GPGを使用してファイルを暗号化するのは簡単です。 いくつかの簡単なターミナルコマンドを使用して、LinuxでGPGキーを生成する方法は次のとおりです。 GnuPGのインストール 最初にGnuPGをインストールすることから始める必要があります。 DebianまたはUbuntuベースのディストリビューションの場合は、ターミナルを開いて次のコマンドを実行します。 sudo apt install gnu