- PR -

CompactFramework(C#)でのクライアント証明書の扱い

1
投稿者投稿内容
さんだゆう
会議室デビュー日: 2006/07/11
投稿数: 2
投稿日時: 2006-07-11 14:36
みなさん。はじめまして。

 現在.NET CompactFramework 1.0(C#を使っています)でクライアント証明書を使ったhttpsアクセスが可能か否かを調査しています。HttpWebRequestクラスを使用しています。

VS2005のエミュレータ上でhttp及びhttps(サーバ証明書)までは確認できましたが、クライアント証明書を使ったものが上手くできません。HttpWebRequest(もしくはその他のクラス等で)アプリケーションから直接クライアント証明書が必要なWebサイトにアクセスする方法はないでしょうか?

 通常の.NET Frameworkでは以下の方法でOKでした。(当然ブラウザにはクライアント証明書をインポート済みでブラウザからもクライアント証明書がないとアクセスできないサイトにアクセスできました)

ところが、CompactFrameworkではHttpWebRequestのClientCertificates
メンバがサポートされていないので下記の手法が使えません。

海外の掲示板とかも見てみたのですが、同様の質問に対して長期レスがありませんでした。あまりに初歩的な質問のためか、本当に方法が無いのかは不明ですが。

-----------------------
WebRequest request = WebRequest.Create("https://○○○");
X509Certificate cert = new X509Certificate("○○.pfx", "xxxxx");

((HttpWebRequest)request).ClientCertificates.Add(cert);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
------------------------
 
 HttpWebRequestのクラスライブラリリファレンスには下記の記述があるので、個人用証明書ストアにクライアント証明書がはいってればいいのかな?という気がしますが、上記のようなコーディングをしないと、個人用証明書ストアの中の証明書はひっぱってこれてない雰囲気です。

-------------------------
HttpWebRequest を使用したクライアント認証を行うには、現在のユーザーの個人用証明書ストアにクライアント証明書がインストールされている必要があります。
-------------------------

申し訳ありませんがもしご存知のかたがおられましたらご教授いただけますでしょうか?
さんだゆう
会議室デビュー日: 2006/07/11
投稿数: 2
投稿日時: 2006-07-11 20:05
自己レスですが、無理っぽいですね。

少なくともCompactFramework1.0では無理そうです。

#下のにはX509のサポートがCompactFramework2.0からと書いてあるが
 X509のクラスはCompactFramework1.0でもサポートしているみたいです。
 (クラスライブラリリファレンスによると)

しかし、CompactFramework2.0でもHttpWebRequest.ClientCertificatesは
使えなさそうです。
http://msdn2.microsoft.com/ja-jp/library/system.net.httpwebrequest.clientcertificates.aspx

マニュアルも整合性とれてないですね。

-----------------
http://msdn2.microsoft.com/ja-jp/library/h1ek3akf.aspx

-----
.NET Framework 開発者ガイド
フレームワーク サポートと新機能

.NET Compact Framework バージョン 2.0 では、新機能が導入され、.NET Framework クラスのサポートが強化されました。また、Just-in-Time (JIT) コンパイラ、ガベージ コレクション、XML Web サービス、データ アクセスなど、いくつかの機能でパフォーマンスが向上しています。

.NET Framework 機能のサポート
次の表は、.NET Compact Framework バージョン 2.0 で向上した .NET Framework 機能サポートの一覧です。

暗号化サポート
サポートされる機能は次のとおりです。

X.509 証明書

ハッシュ:

MD5 および SHA1

共通キー暗号化:

RC2、RC4、3DES、DES

非対称キー暗号化:

RSA、DSA
1

スキルアップ/キャリアアップ(JOB@IT)