ASP.NET 4.0 Webformsアプリケーションから呼び出す外部Webサービスに、証明書を使用してセキュリティを追加するように依頼されました。
証明書をいじってコードを正しく機能させることができましたが、そのソリューションの展開に関しては、まだ多くの質問に答えられていません。私は実際に証明書を使用する(そして扱う)のはかなり新しいです-私はそれらの背後にある基本的な理論を理解していますが、自分であまり使用したことはありません。
このサービスは、証明書も発行する会社が提供する外部REST Webサービスであり、証明書は毎年有効期限が切れ、毎年更新する必要があります。したがって、それらを内部リソースとしてASP.NETアプリに「焼き付ける」ことは、良い考えとは思えません。
私はそれらをWindows2008Serverの証明書ストアに入れることに傾倒しています。それは問題なく動作しますが、私にはよくわかりません。コードから適切な証明書を見つけるにはどうすればよいですか。X509Certificate2
とX509Store
クラスについては知っていますが、どの基準を検索する必要がありますか?
その証明書を毎年更新する必要がある場合、どのアイテム(シリアル番号?拇印?)が同じままになりますか?または、証明書が更新されるたびに、構成を更新して新しいシリアル番号または拇印を保存する必要がありますか?
私が正しく理解している場合は、正しいWebサービスと通信していることを確認する必要があります。
httpsを使用してRESTサービスに接続しています。それはWCFサービスですか、それともWeb APIですか?どちらの方法でも、WebサーバーはSSL部分を処理します(うーん、Webサーバーでホストされていて、自己ホストされていない場合のみ)。したがって、簡単にすると、WebサービスはWebサーバーでホストされます。WebサーバーはSSL接続の確立を処理し、サーバー証明書を送信します。
次に、正しいWebサーバーと通信しているかどうかを確認する必要があります。オプションは次のとおりです。
1)-動作しますが、毎年設定ファイルを更新する必要があります
2)-WebサーバーのDNS名が変更されるまでは正常に機能しますが、web.configが変更されるため、機能します。注意すべき点の1つは、標準の.NETFrameworkを使用してX509Certificate2クラスから拡張機能を抽出するのは簡単ではないということです。ASN.1レベルに進むか、SANを使いやすい方法で抽出できる暗号ライブラリを使用する必要があります。
3)-うまく機能します。ルートCA証明書または専用の中間CA証明書を使用できます。証明書チェーンを構築するには、Webサーバー証明書が信頼されていることを確認する必要がありますが、これは通常、すべてのソリューションに適用されます。CA証明書は20〜30年まで発行されるため、かなり長い時間機能します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加