自己署名SSL証明書を作成する方法

SSL証明書は、インターネットでの認証と暗号化を容易にするために使用されます。 通常、これらの証明書は、次のような信頼できるサードパーティの認証局によって発行されます。 Let’s Encrypt。 自己署名証明書は、サードパーティの認証局を経由せずに取得される証明書です。

TLS / SSLは、公開証明書と秘密鍵の組み合わせです。 秘密鍵はサーバーまたはロードバランサーに安全に保存されますが、証明書は公開されています。

このチュートリアルでは、その方法を説明します 自己署名SSL証明書を作成する を使用して OpenSSL 道具。

前提条件

Linuxマシンとユーザー sudo 特権。

OpenSSLをインストールします

OpenSSLは、すべての主要なLinuxディストリビューションでデフォルトで使用できます。 以下のコマンドを実行して、OpenSSLがLinuxマシンにすでにインストールされているかどうかを確認します。

$ opensslバージョン

OpenSSLがインストールされているかどうかを確認します

OpenSSLのバージョンの詳細を示す出力が表示されない場合は、次のコマンドを実行してOpenSSLをインストールします。

UbuntuおよびDebianベースのディストリビューションの場合:

$ sudo apt install openssl

Red Hatベースのディストリビューション:

$ sudo dnf install openssl $ sudo yum install openssl

openssl コマンド構文は次のとおりです。

openssl command options arguments 

OpenSSLを使用して自己署名SSL証明書を作成する

LinuxマシンにOpenSSLツールがインストールされていることを確認したら、自己署名証明書の作成に進むことができます。

秘密鍵を生成するには、CSR情報が必要です。 自己署名証明書を生成しているため、CSRファイルを出力する必要はありません。これは、CSR情報をサードパーティの認証局に送信する場合にのみ必要になるためです。

自己署名SSL証明書を作成するには、次のように入力します。

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout my_key.key -out my_cert.crt

これにより、365日間有効な自己署名証明書が作成されます。 別のディレクトリが明示的に指定されていない限り、証明書とキーファイルは現在のディレクトリに作成されます。

各オプションの意味は次のとおりです。

  • req -証​​明書署名要求を作成します
  • -newkey rsa:4096 -これにより、4096ビット長のRSAキーが作成されます。 指定しない場合、デフォルトで2048ビット長のキーが作成されます
  • -キーアウト -キーが保存される秘密キーファイル名
  • -アウト -新しい証明書を保存するファイル名を示します
  • ノード -パスフレーズを使用して証明書を作成する手順をスキップします
  • -x509 -X.509形式の証明書を作成します
  • -日々 -証​​明書が有効な日数

CSRフィールド:

C =-国名。 (2文字のコード)。
ST =-州または県の名前。
L =-地域名。
O =-組織のフルネーム。
OU =-組織単位名。
CN =-完全修飾ドメイン名。

既存の秘密鍵とCSRを使用して自己署名証明書を作成する

既存の秘密鍵とcsrがある状況では、次の手順で十分です。

OpenSSL秘密鍵を作成する

まず、以下のコマンドを実行して、秘密鍵を作成して保存します。 この秘密鍵は、SSL証明書に署名するために必要です。 あなたは変えられる 私の鍵 以下のコマンドで自分の値に変更します。

$ sudo openssl genrsa -out my_key.key

オプションの意味は次のとおりです。

  • genrsa RSA秘密鍵を生成する
  • -アウト 出力ファイル

別の場所を指定した場合を除き、秘密鍵は現在の作業ディレクトリに保存されます。

証明書署名要求を作成します

次のステップは、証明書署名要求(CSR)を作成することです。 CSRは、通常、署名のためにサードパーティの認証局に送信するものです。 ただし、この場合は、自分で署名します。

CSRを作成するときに、いくつかの情報を提供するように求められます。 Enterキーを押すと、一部のフィールドが空白のままになる場合があります。

次に、以下のコマンドを実行して、CSRの作成を開始します。

$ sudo openssl req -new -key my_key.key -out my_csr.csr

各オプションの意味は次のとおりです。

  • req 証明書署名要求を行う
  • -新着 新しいリクエスト
  • -鍵 秘密鍵ファイルが保存されているパス
  • -アウト 出力ファイル

次の画像は、CSR作成プロセスがどのように見えるかを示しています。

証明書署名要求を作成します証明書署名要求を作成します

自分で証明書に署名する

以下のコマンドを実行すると、365日間有効な自己署名証明書が作成されます。

$ openssl x509 -req -days 365 -in my_csr.csr -signkey my_key.key -out my_cert.crt

以下はオプションの意味です。

  • x509 公開鍵証明書を作成および検証するための国際標準
  • -req 証明書要求を行う
  • -日々 証明書が有効な日数
  • -の csrファイルが保存されているパス
  • –signkey 秘密鍵が保存されているパス
  • -アウト 自己署名証明書の出力ファイル

証明書を確認する

以下のコマンドを使用して、証明書の詳細をテキスト形式で確認できます。

$ openssl x509 -text -noout -in my_cert.crt

SSL証明書の詳細を表示するSSL証明書の詳細を表示する

結論

このチュートリアルでは、を使用して自己署名SSL証明書を作成する方法について説明しました。 openssl 道具。 主要なブラウザは自己署名証明書を信頼しないため、内部またはテスト目的でのみ使用することをお勧めします。