2


1 つの VS ソリューションには、クライアント (wpf アプリ) と wcf サービス ライブラリの 2 つのプロジェクトがあります。
サーバー側でメッセージセキュリティとカスタム AspNetMembershipPrivider を使用して、ユーザー名とパスを検証しています。
Windowsセキュリティを使用していないため、サーバーで証明書を使用して安全なチャネルを確立する必要が
ありました.
- この証明書が Personal-Certificates の下の Certificates スナップインに表示されることを確認しました
- その証明書を指すように wcf .config を構成しました。
- VS でクライアント アプリを起動しました (また、VS は wcf lib の wcfhost アプリも
起動しました)。再起動後、wcfhost は次のように不満を述べました。

証明書「CN=xxx」には、有効な秘密鍵が必要です
鍵交換の。プロセスには、プライベートのアクセス権が必要です
鍵。--->
System.Security.Cryptography.CryptographicException: キーセットが存在しません

役立つのは、証明書を再作成することだけであり、再起動するまでもう一度です。上で述べたように、私のサービスは私のユーザー アカウント (ローカル管理者) で実行されているため、c:\Users\xxx\AppData\Roaming\Microsoft\Crypto\RSA\ ファイルへのアクセス許可は問題ではないと思います。

私が iis manager を使用して証明書を作成し、makesert などを作成していない理由は、私が持っている共有 osting アカウントですべてが機能することを確認したいからです (自己署名証明書を作成するホスティング パネルにオプションがあります)。

誰でもこれを手伝ってもらえますか? ありがとう

4

3 に答える 3

2

私の経験からすると、証明書はかなり難しいものです (他の人も経験していると思います)。あなたがそれを機能させているのを見ると、あなたはほとんどそこにいるように見えるので、私の推奨事項は別の方法で証明書を設定することを中心に展開しています:

  • SelfSSL.exe を使用します -次のコマンドでIIS6.0 リソース キットの一部として入手できます: SelfSSL.exe /T /N:CN=localhost /V:999 /Q (localhost をサーバー名に置き換えることができます)。これにより、証明書が作成され、999 日間有効な IIS にインストールされます。
  • 次のコマンドでMicrosoftから入手可能な winHttpCertCfg を使用します。鍵。

運が良ければ教えてください!

于 2009-04-16T14:27:54.933 に答える
1

問題を解決しました。
UAC をオンにして、開発ボックスで Vista を実行しています。1 週間ほど前に Visual Studio の起動方法を変更しましたが、「管理者として実行」オプションなしで起動した VS で作業していたことに気付かなかったようです。そのため、VS によって起動された WcfHost の権限も制限されていました。私の悪い点は、VS を再起動することはめったにありません。VS を 1 週間か 2 週間実行し、たとえば unreal3 を同時に起動するのが一般的な方法です。

ところで、メッセージ セキュリティを使用した共有ホスティング (IIS7) の証明書へのアクセス権に問題があると言える人はいますか? または、トランスポート セキュリティをターゲットにしますか。

于 2009-04-16T23:03:34.950 に答える
1

管理者として実行すると、証明書の保護が無効になりますが、これは機能します。ただし、解決策は、サーバーが実行されているユーザー名を証明書に付与することです。スナップインで、証明書を右クリックし、すべてのタスクを実行します -> 秘密鍵の管理 -> グループまたはユーザー名の追加。IIS の場合、場所をローカル マシンに変更します。ユーザー名は「IIS AppPool/xxxxx」です。xxxxx は、証明書を使用するアプリケーションが実行されている IIS アプリケーション プールの名前です。正解すると、「チェック」ボタンが表示されます。IIS Express でも手探りで調べましたが、何をしたかはっきりと覚えていません。IIS Express を起動し、タスク マネージャーでそれを見つけ、詳細列を使用してそのユーザー名を確認する必要がありました。お役に立てれば。私のために働いた。

于 2015-11-21T01:00:30.827 に答える