SSLリスナーを追加できません。キーのサーバー証明書が見つかりません


19

GoDaddyから購入した証明書を使用して、ロードバランサーにSSLを設定しようとしています。

コンソールで証明書をアップロードしようとすると、エラーが発生しました

ロードバランサーの作成に失敗しました:キーのサーバー証明書が見つかりません:arn:aws:iam :: ************:server-certificate / mycert

SSL証明書を追加するときに、このエラーに遭遇したことはありません。iamここでなぜ使用されているのかわかりません。

いくつかのグーグルの後、iamaws cli を使用して証明書をアップロードすることができました(もう一度、なぜこれを行う必要があるのか​​わかりません)。

リスナーを変更すると、アップロードした証明書が既存のSSL証明書として表示されるようになりました。ただし、変更をロードバランサーに保存しようとすると、同じエラーが発生します。証明書が存在することを確認しました:

$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": [
        {
            "ServerCertificateId": "*********************", 
            "ServerCertificateName": "mycert", 
            "Expiration": "2018-11-19T18:47:38Z", 
            "Path": "/", 
            "Arn": "arn:aws:iam::************:server-certificate/mycert", 
            "UploadDate": "2015-11-19T19:23:32Z"
        }
    ]
}

(ここで難読化されたアカウント番号がエラーと同じであることを確認しました)

ここから立ち往生しています。このロードバランサーに証明書を適用できないのはなぜですか?


2015年11月19日木曜日11:47:18 PST 2015年編集

しばらく待ってからログアウトしてからログインすると、SSL証明書でリスナーを更新できました。ただし、正しく機能していないようです。HTTPSリクエストでドメインをロードしようとするとタイムアウトします。証明書を読み込めないようです

$ echo | openssl s_client -connect www.example.com:443 2>/dev/null | openssl x509 -noout -subject
unable to load certificate
69457:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-52.30.1/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE

1
証明書は常にIAMに保存されるため、IAMレプリケーションの遅延または別のエラーが発生したように聞こえますが、証明書は正常に保存されているように見えますが、その後は存在しませんでした...元々動作していたはずのもの。ELBセキュリティグループはHTTPSに対して世界に開かれていますか?もしそうなら、ここに2番目の異常があります。新しいELBをゼロから作成し、異なる動作をすることを確認することをお勧めします。
マイケル-sqlbot

回答:


30

WebコンソールからELBを作成しようとしたときに、同じ問題に直面しました。GUI経由で新しい証明書のアップロードを作成しようとしていましたが、最終的に同じエラーで失敗しました。証明書ファイルをaws cli経由で個別にアップロードすることで解決しました。このドキュメントで説明されている-http ://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html#upload-cert

このような証明書、秘密鍵、証明書チェーンをアップロードします

aws iam upload-server-certificate --server-certificate-name my-server-cert \
  --certificate-body file://my-certificate.pem --private-key file://my-private-key.pem \
  --certificate-chain file://my-certificate-chain.pem

次に、ウェブコンソールに移動して、[AWS Identity and Access Management(IAM)から既存の証明書を選択]オプションを選択し、アップロードしたばかりの証明書ペアを選択します。その後は正常に動作します。


1
同じ問題がありました。共有するリンクで提案されているawsクライアントを使用して、説明どおりに解決しました。IAMコンソールWebフォームを使用してキー、CRT、およびチェーンを貼り付けることができませんでした。dev-machineにaws-clientをインストールし、資格情報を追加するために「aws configuration」でセットアップしてから、コマンドaws iam uplad-server-certificateを実行しました...
wojjas

GUIは私に問題を与えましたが、CLIはそうではありませんでした...いつものように。
Spechal

1
アップデート(現在は2017年)については、Amazonのサポートと話しましたが、これはまだ既知の問題です。CLIは、このプロセスが正しく機能することを保証する唯一の方法です。-_-
ニコラス・クレイドバーグ

2
2017年半ば、問題はまだ存在しています。
ディオゴメロ

2
2018年1月の終わり-まだおよび問題
アンドリューS

17

エラーは誤解を招くものです。証明書をアップロードします。エラー終了を受け取ったら、変更に戻ります。既存のIAM証明書を選択し、ドロップダウンをクリックします。新しい証明書が表示されます。


これも私に起こったことです。エラーが発生しました。つまり、証明書がアップロードされなかったので、もう一度試してみました...証明書が既に存在するという別のエラーが表示されました。「新しい証明書」UIを終了して戻って、「既存の」証明書としてアップロードしたばかりの証明書を選択すると、うまくいきました。
coredumperror

1
ありがとうございました!これはめちゃくちゃです。私は彼らがこのような何かを修正していないとは信じられない。

それは正確です
shareef

これはELB IAM証明書アップロードワークフローで引き続き発生しますが、ALB IAM証明書アップロードワークフローで修正されました。
ジョシップロダン

5

私は同じ問題を抱えていましたが、ありがたいことにCLIを押すことなく解決できました。証明書自体の後に、公開鍵証明書フィールドに証明書チェーンを貼り付けることにより、ELBにHTTPSリスナーを追加しました。

このエラーは、証明書チェーンがコンソールの独自の証明書チェーン入力ボックスに貼り付けられたときにのみ現れました(オプションとしてマークされています)。なぜこれが違いを生むのは確かではありませんが、ELBでHTTPSリスナーを作成し、すべてがうまくいきました。


これは、SSLmate経由で購入したComodo DV証明書を使用して、今ではうまくいきました。別の問題は、最後の[送信]ボタンをクリックした直後にエラーが発生することでした。これは、数秒後にボタンを再クリックすることで修正されました(最終的な整合性によるIAM伝播遅延?)
RichVel

3

私の場合、証明書名の特殊文字:。(dot)が原因でした。証明書名からすべてのドットを削除した後、すべてが正常に機能しました


1
また、「-」ダッシュを削除します
ysrb

2

私もこれを打ちました。新しいELBを作成するために5回試行しましたが、毎回失敗しました。APIバリアントを試したことはありませんが、SSL証明書を設定することができました

  1. 最初にELBを作成します。それから
  2. HTTPからHTTPSに変更し、証明書+キー+中間物をアップロードしてリスナーを変更します。

1

私は同じ問題に直面しました。私の場合、SSL証明書をアップロードするときに「キーのサーバー証明書が見つかりません」というエラーが表示されましたが、最終的にはアップロードされてドロップダウンに表示されます。CLIを使用してアップロードするときにエラーが発生しません。AWSサポートに連絡したときに、以下のエラーの理由を教えてくれました

これが起こる理由は、最終的な一貫性です。アップロードされた証明書はIAMに保存されます。IAMには大規模なデータベースがあるため、アップロードされた証明書はすべてのデータベースに伝播する必要があります。伝播するのに十分な時間がない場合、この証明書を取得しようとしているELBは、クエリしているエンドポイントでそれを見つけることができません。したがって、「キーのサーバー証明書が見つかりません」をスローします。最終的に伝播されると、後でアップロード済みの証明書として見ることができます


1

これを回避するには、awsコンソールの証明書マネージャーにアクセスし、最初にそこにアップロードします。次に、ロードバランサーウィザードを使用して、アップロードした証明書を選択します。


時間外にSSLをAWSにアップロードすると、別の問題が発生します。今回は、Certificate Managerで設定し、EC2 Load Balancerで使用するだけで機能しました!!
user566245

0

ここでAWSウェブインターフェースを使用するときの同じ問題:有効な証明書、正しいキー、完全なチェーンをアップロードしましたが、上記のエラーが発生しました。

別の(テスト)ロードバランサーに証明書をアップロードしようとしました。アップロードは機能しましたが、リスナーのステータスには「無効な証明書」と表示されます。

「証明書の選択」ダイアログを再度開いたときに、証明書が選択されていません。ただし、証明書は証明書リストで選択できるため、明らかに正しくアップロードされました。

それで、元のロードバランサーに戻って、このアップロードされた証明書を割り当てようとしました。奇妙なことに、それはリストにありませんでした。新しい試みをして、証明書とそのキーをアップロードしましたが、証明書チェーンは省略しました。これはうまくいったので、チェーンでなければならないことを知っていましたが、それは正しくありません(それはcommodo-certです)。公式ページからチェーンを再度ダウンロードし、バンドル全体をアップロードして、機能しました。今奇妙なこと:破損したものと新しくダウンロードしたものの両方を比較したとき、それらは同じように見えます。同じ日付、同じシリアル、同じ同じ。しかし異なる。

簡単に言えば、中間証明書を再度ダウンロードすることで機能しました。


0

これと同じ問題があり、最終的に修正されたのは、ロードバランサーのセキュリティグループに入り、ポート443が開かれていることを確認することでした。


0

Classicロードバランサーを作成する前に、AMI(本番環境のインスタンスのイメージ)を作成する必要があります。これにより、ロードバランサーの作成の設定に移動し、プロセスを再度実行します。



0

証明書を直接アップロードする場合、同じ問題が発生しました。

証明書マネージャー(AWS証明書マネージャー-ACM)を使用した場合、証明書をアップロードできました。その後、ドロップダウンリスト内で証明書を選択するだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.