web-dev-qa-db-ja.com

証明書を秘密鍵に変換するにはどうすればよいですか?

Webサーバー(特にSplunk)の証明書をセットアップしようとしていますが、正しい形式ではないと思います。秘密鍵ファイルへのパスとCA証明書を提供する必要があります。現在、私は両方をPEM形式で持っています(両方のファイルの内容は "---- BEGIN CERTIFICATE -----"で始まります)。しかし、それは機能していないようです。私の最良の推測では、秘密鍵ファイルは別の形式にする必要があります。基本的に、コマンドが次のような形式にしたい

openssl rsa -in MYFILE -check 

成功します(現在、「秘密鍵をロードできません」で失敗します)。しかし、私は現在それを確認することができます

openssl x509 -in MYFILE -text -noout

では、最初のコマンドが成功するようにファイルを変換するにはどうすればよいですか?

6
gsteff

証明書には公開鍵のみがあり、秘密鍵はありません。

PEM形式の場合、秘密キーと証明書の両方が同じファイルにある場合があります。 BEGIN PRIVATE KEYまたはBEGIN RSA PRIVATE KEYヘッダーを探します。見つかった場合は、通常のテキストエディタを使用して2つのblobを分離します。

ただし、証明書がonlyの場合は、絶対にcannotから秘密鍵を取得します。証明書は公開鍵のみを持ち、非対称暗号化の全体的なセキュリティは、公開鍵を与えられた秘密鍵を見つけることが不可能であることによって決まります。

15
user1686

秘密鍵と証明書の両方が.pem形式(X509)であり、その秘密鍵をrsa秘密鍵形式(RSA)に変換する必要があるようです

これを行う方法がここに提供されています:

https://stackoverflow.com/questions/17733536/how-do-i-convert-a-private-key-to-an-rsa-private-key

2
Dan L