web-dev-qa-db-ja.com

Godaddyが発行した証明書を使用する場合、「公開キー証明書と秘密キーが一致しません」

Amazon AWSで設定している新しいロードバランサーにGoDaddy SSL証明書をインストールしようとしています。私は元々、Glassfish 3.1サーバー(Amazon linux AMI)に直接インストールするためにkeytoolプログラムを使用してGodaddyで証明書を作成しました。サーバー上で直接そのセットアップを取得しても問題はありませんでした。ここで、証明書をWebサーバーから新しいロードバランサーに移動する必要があります。 Amazonでは秘密鍵と証明書がPEM形式である必要があるため、GoDaddyの「キー再生成」ツールを使用して新しい証明書を作成しました。 AWS Mgmt Consoleのロードバランサーのセットアップ画面でそれらを読み込むと、「公開キー証明書と秘密キーが一致しません」というエラーメッセージが表示されます。

キーの作成方法は次のとおりです。

$ openssl genrsa -des3 -out private.key 2048
$ openssl req -new -key private.key -out apps.mydomain.com.csr

次に、「キーの再生成」プロセス中に.csrファイルをGoDaddyに送信します。キーの再生成が完了したら、新しく作成した2つの証明書(apps.mydomain.com.crtおよびGd_bundle.crt)をダウンロードします。サーバーのタイプとして(Apache)を選択してダウンロードします(「other」と「Cpanel」も試しましたが、すべて同じように見えます)。

この時点で、次のコマンドを使用してprivate.keyファイルから暗号化を削除します。

$ openssl rsa -in private.key -out private.pem

この時点で、AWS Mgmtコンソールに戻り、ロードバランサーを作成し、セキュアサーバーリダイレクトを追加し、SSL証明書のセットアップを要求する画面の各フィールドに次のファイルの内容を入力します。

private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
Gd_bundle.crt --> Certificate Chain

「続行」ボタンをクリックすると、「エラー:公開鍵証明書と秘密鍵が一致しません」というエラーが表示されます。

-Amazonから有効なエラーメッセージを受け取っていることをテストする方法はありますか? GoDaddyの指示にかなり忠実に従っていると、キーが一致しないのは奇妙に思えます。

.csrを作成する前に、RSA暗号化なしでprivate.keyファイルを作成しようとしましたが、違いはないようです。

また、GoDaddyからダウンロードしている.crtファイルは.PEM形式であると想定していますが、これを確認する方法がわかりません。

何か案は?

84
Felby

問題は、キーと証明書の内容をAWSマネジメントコンソールにコピーする方法だったようです。 Windows 7デスクトップ上のVirtual Boxで実行されているUbuntuデスクトップを使用していました。 gedit画面からWindowsボックスで実行されているブラウザに値をコピーして貼り付けます。 Webブラウザ(この場合はWindows)と同じボックスでキーと証明書ファイルを開くと、証明書は問題なく処理されました。 Virtual BoxクライアントとHostの間で共有クリップボードを使用すると、ファイルの一部が正しく上書きされないと推測しています。ケースは閉じられました。

23
Felby

私にとっては、簡単な2つのステップでした。

  1. 秘密鍵をPEMに変換します。

    openssl rsa -in yourdomain.key -outform PEM

  2. 証明書と証明書バンドルをPEMに変換する

    openssl x509 -inform PEM -in yourdomain.crt

    openssl x509 -inform PEM -in bundle.crt

61
Jonathon Hill

記録とそれを理解しようとしている他の人のために:

yourdomain.key->端末コマンド:Sudo openssl rsa -in yourdomain.key -outform PEM -out yourdomain.pem->秘密鍵

yourdomain.crt->公開鍵

Gd_bundle.crt->証明書チェーン

そして、あなたは行ってもいいです:)

39
C Jones

この問題の代替ソリューションが見つかりました。同じエラーで同じ症状が発生していました。

次に、もう一度PEMコードを再入力しようとしましたが、今回は必ずEnterキーを1回押して、各ウィンドウの最後にあるカーソルが空白行にあることを確認しました。それから保存しました。動いた。

これで問題が解決したので、他の人にとっても解決するかもしれません。

7
PlateSpinner

1つの小さな落とし穴。 Windowsボックス(Win 7 Pro)を使用しています。OpenSSLのWindowsポートを使用した場合、出力されるファイルにはUnixスタイルの行末文字(LF)が含まれていました。

秘密鍵をアップロードするには、ファイルをWindowsスタイル(CRLF)に変換する必要がありました。

私はあなたに別の解決策とあなたの人々への情報を提案することができます。通常、すべての証明書はPEMファイル形式です。メモ帳またはテキストエディタを開いて、受け取ったファイルを.crtファイル形式でドラッグするだけです。これは通常.PEMファイルと呼ばれます。証明書がkeytoolにロードされている場合、keytoolからpfxファイルとして証明書をエクスポートできます。次に、pfxファイルの秘密キーからpfxファイルを分離できます。 pfxファイルは証明書と秘密キーの組み合わせであるため、秘密キーファイルを個別に取得してAmazon awsで使用できます。

証明書をインストールする別の方法があるかもしれません。認証局に連絡して、証明書を再発行する方法はありますか。

0
Rajan