C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: C#でベーシック認証とクライアント証明書の二重証明に失敗


(過去ログ 112 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■66525 / inTopicNo.1)  C#でベーシック認証とクライアント証明書の二重証明に失敗
  
□投稿者/ mocky (1回)-(2013/05/01(Wed) 19:10:29)

分類:[.NET 全般] 

いつも大変お世話になってます。

Webサーバとの通信の時に、自己認証局で署名したクライアント証明書による認証と、
ベーシック認証をかけたサイトとの通信をHttpWebRequestで行いたいのですが、
失敗してしまいます。どなたかご経験の方いらっしゃいましたらご教授ください。

[環境その他]
・VC#2010 (.Net3.5のコンソールアプリケーション)、Windows7
・Webサーバ Apache2.2

[コード]
string url = "https://domain.com/path/";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ClientCertificates.Add(new X509Certificate(@"C:\Path\to\key\client.p12", "passphase"));
request.PreAuthenticate = true;
NetworkCredential nc = new NetworkCredential("username", "password");
request.Credentials = nc;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader responseReader = new StreamReader(response.GetResponseStream());

[その他]
・client.p12は、CA証明書とクライアント証明書をパックしたものです。
・CA証明書および、クライアント証明書はIEの証明書ストアにもインストール済です
・IEから同様の操作をすると、正常に画面が閲覧できます。
・サーバ側を変更し、クライアント認証のみ、あるいはベーシック認証のみにすると
 正常に閲覧できます。
・request.GetResonseStream() の行で、401エラーによるWebExceptionが発生します
 (StatusはProtocolErrorです)
・Credentialsについては、"Authorization"ヘッダを自力で付加ということもして
 みましたが同様にエラーです。

以上です。よろしくお願いします。

引用返信 編集キー/
■66551 / inTopicNo.2)  Re[1]: C#でベーシック認証とクライアント証明書の二重証明に失敗
□投稿者/ 逆運の覇者 (2回)-(2013/05/04(Sat) 23:20:45)
http://msdn.microsoft.com/en-us/library/system.net.networkcredential.aspx
>This class does not support public key-based authentication methods such as Secure Sockets Layer (SSL) client authentication.



http://devproj20.blogspot.jp/2008/02/assigning-basic-authorization-http.html
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -