証明書のソースを確認すると、指定されたURLのホスト名が有効なsns.${region}.amazonaws.com
エンドポイントであることを確認し、SSL証明書検証が無効になっているHTTPSユーザーエージェントを使用していることを確認します。
ほとんどの人は、HTTPSでは、接続を暗号化する過程でWebサーバーの証明書が使用されていることを知っています。証明書は信頼できる認証機関によって署名され、信頼の連鎖が確立され、証明書にはSubjectおよび/またはSubject Alternative Nameフィールドにそれを提示するサーバーのホスト名が含まれます。ホスト名の不一致は、信頼できるCAルートまたは中間(ブラウザ/ユーザーエージェントが信頼できるCAのIDについて既に知っている)と一致しない署名と同様に、サーバーが詐称者であることを意味します。ユーザエージェントは、通常、無効にするためにストレスを取らない限り(例えば、curl
で--insecure
オプションを使用するなどしない限り)、これを自動的に検証します。
URLが賢明であることを確認してから、HTTPSを使用して証明書自体を取得すると、有効な証明書を提示しているサーバーから証明書を取得していることが検証されます。信頼できないソース。
証明書を取得すると、その証明書をメモリにキャッシュしておくことになります。彼らはめったに変化しない。
わかりやすくするために、ダウンロードした証明書自体のプロパティを確認するのではなく、URL自体をチェックして(有効なHTTPS接続を使用していることを確認する)必要があります。 – djd
正しい。証明書の内容は偽造されている可能性がありますが、あなたがSNSから2つの技術で直接取得していることを確認すれば、偽造できる唯一の方法はSNS自体が侵害されることです。 –
注意してください。私はこれを他のもの(おそらくインスタンスID証明書の検証証明書)と組み合わせているのか、あるいはSNSがこれらの証明書をプロビジョニングする方法を変更したのかどうかはわかりませんが、これらの証明書は本当に署名されており、 Symantec CAを介した検証私はこれをさらにテストする必要がありますが、私の答えが完全なストーリーを伝えていないかもしれませんが、このような場合でも、有効なトラストチェーンを持つだけの証明書は十分なテストではありません。証明書の主題は、正式なSNSであることを確認する必要があります。 –