2

コンソール プログラムで https Web サイトから xml/rss を読み取れるようにする必要があります。

これまで、私のプログラムはプレーンな http をサポートしていました。いろいろと検索してきましたが、https のサポートを実装する簡単な方法が見つからないようです。サイトに有効な証明書があるかどうかは問題ではありませんが、これらの証明書を確認する方法についてのヒントを得ることができれば幸いです。

私はこれについてあまり知らないかもしれないので、ヒントがあれば感謝します!

私が現在httpに対して行っていることは次のとおりです。

XmlTextReader rssReader;
XmlDocument rssDoc;
rssReader = new XmlTextReader(url);
rssDoc = new XmlDocument();
rssDoc.Load(rssReader);

信頼できる証明書のないサイトでこれを試みると、次のようなエラーが表示されます。

string url = "https://somesite.com";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();

私のプログラムは、信頼できる https サイトと信頼できない https サイトの両方をサポートする必要があります。

プログラムはサーバー上で実行されているため、信頼されていない https サイトをコードで処理する必要があります。

4

2 に答える 2

3

証明書の問題については、次を試してください...

ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback((s, ce, ch, ssl) => true);

...開始時またはリクエストを実行する前のどこか。

これは基本的に、証明書を無条件に検証することであり、少し単純化されています。

編集:それは「やみくもに」信頼することです(そして、アプリのグローバルな性格です)-適切な実装ではパラメーターを処理します-または、さまざまなホスト/証明書を具体的に処理するためにICertificatePolicyを実装する必要があります。

編集(証明書):証明書とSSLが実際にどのように機能するかについて-および上記に関連する(コメント/ディスカッションに基づく)...

http://www.verisign.com/ssl/ssl-information-center/how-ssl-security-works/index.html
SSL は実際にどのように機能しますか?
https://superuser.com/questions/84572/public-key-encryption

于 2012-04-05T21:30:04.047 に答える
2

を送信するHttpWebRequestか、 を使用する必要がありますHttpClient。どちらも、これらの接続を作成/ネゴシエートするために設計されています。

重複の可能性: XmlTextReader を使用して https から xml をロードする方法

WebRequest を使用して、https を使用して SSL 暗号化サイトにアクセスするにはどうすればよいですか?

C# での https を使用した HttpWebRequest

于 2012-04-05T21:25:06.837 に答える