キー・ペアの作成
次の手順では、公開キーと秘密キーのペアを作成する方法を示します。 示されている例では、キー・ペアの作成はアトミック操作として扱われるため、プロセスを記述し、理解を深めるために要素を呼び出すことができます。 多くの場合、このステップは効率化のために他のコマンドに組み込まれます。
- RSAキーの生成
RSAキーを生成するには、
openssl genrsa
コマンドを使用します。たとえば:sudo openssl genrsa -out private.key 2048 Generating RSA private key, 2048 bit long modulus ................................................... .................................................... ...................................................+++ ................................+++ e is 65537 (0x10001)
このコマンドは、private.keyという暗号化されていないキーをローカル・ディレクトリに生成します。 キーの内容は、次の例のようになります。
cat private.key -----BEGIN RSA PRIVATE KEY----- ...[certificate text] -----END RSA PRIVATE KEY-----
ファイルは
private.key
と呼ばれ、ファイルに秘密キーのみであることを示すテキストが含まれている場合でも、公開キーもこのファイルに埋め込まれます。 したがって、単一のファイルが完全なキー・ペアを表します。 このため、公開キーのコピーの取得は、秘密キーと同じファイルに公開キーが格納されるため簡単です。 - パスフレーズの使用
パスフレーズを使用して暗号化キーを作成するには、同じコマンドを実行しますが、キーの暗号化に使用する暗号を指定します。次に例を示します。
sudo openssl genrsa -aes256 -out private.key 2048 Generating RSA private key, 2048 bit long modulus ............+++ .............................................................+++ e is 65537 (0x10001) Enter pass phrase for private.key: Verifying - Enter pass phrase for private.key:
前述の例では、AES暗号が256ビット・キーで使用されています。 このコマンドでは、パスフレーズを入力して検証するよう求められます。 次の例に示すように、キー・ファイルの内容は、キーが暗号化されていることを示しています。
cat private.key -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-256-CBC,2417E359B45960CD107A390748945752 key-content -----END RSA PRIVATE KEY-----
- キーの復号化
暗号化されたキー・ファイルを作成した後、暗号化されていないファイル、またはパスフレーズを必要としないファイルを使用する場合は、次のコマンドを実行してファイルを復号化できます。
sudo openssl rsa -in private.key -out unencrypted.key Enter pass phrase for private.key: writing RSA key
private.key
に格納されている暗号化されたキーのパスフレーズの入力を求められ、同じキーの暗号化されていないバージョンがファイルunencrypted.key
に書き込まれます。すべてのOpenSSLキーは、Privacy Enhanced Mail (PEM)形式で生成されます。これは、キーの内容をbase64でエンコードされた文字列としてカプセル化するプレーン・テキスト形式です。 証明書は、いくつかの異なる形式規則を使用してエンコードできます。 証明書の形式を変更する方法の詳細は、キーまたは証明書形式の変更を参照してください。
- 秘密キーを調べます
秘密キーの内容は、次のように表示できます。
sudo openssl rsa -text -in private.key
- 公開キーを表示します
特に、秘密キーには対応する公開キーも含まれています。 この公開キー・コンポーネントは、CSRの送信時または自己署名証明書の作成時に使用されます。 公開キー・コンポーネントは、次のコマンドを使用して表示できます。
sudo openssl rsa -pubout -in private.key