0

認証にWSFederationを使用するWindowsAzure用のソリューション(Webアプリ)を開発しています。紺碧のテスト段階にあるので(ローカルテストは成功しました)、ローカルテストに使用していたのと同じ自己署名証明書を使用することにしました。

ここでの問題は、「X.509証明書CN=mytestsite.com.brが信頼できる人のストアにありません。X.509証明書CN=mytestsite.com.brチェーンの構築に失敗しました。使用された証明書には、検証できない信頼チェーンがあります

このエラーは自己署名証明書であるため完全に理にかなっていますが、ステージング環境にいるので(そして、今すぐスポンサーに有効な証明書の追加予算を要求するのは絶対に嫌です...)とにかく自己署名したもの。そこで、certificateValidationModeを「None」に変更しましたが、それでも同じ検証エラーが発生します...検証モードが無視されているようです!!!

物事を機能させるために私が何ができるか知っている人はいますか?(有効な証明書を購入するのが私の最後のショットになります。現時点では、有効な証明書は私の予算に対してかなり高価だからです...)

4

2 に答える 2

1

自己署名証明書を使用し、コードを使用してTrusted Peopleストアに「デプロイ」するだけで、すべてうまくいくはずです。これはとにかく実際の本番環境での使用に近くなります(本番環境でPeerTrustを使用する場合は、実際の証明書を使用しても同じことを行う必要があります)。

    private static void CopyServerCertIntoPeopleStore()
    {
        var myStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
        myStore.Open(OpenFlags.ReadOnly);
        var peopleStore = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
        var cert = myStore.Certificates.Find(
                                X509FindType.FindByThumbprint,
                                SettingFetcher.GetSetting(SettingFetcher.SettingType.ApplicationVariable, "WcfServiceCertificateThumbprint"),
                                true
                              ).OfType<X509Certificate2>().First();

        peopleStore.Open(OpenFlags.ReadWrite);
        peopleStore.Add(cert);
    }

このようなものを使用して、SettingFetcherを指紋を取得するための何かに置き換えるだけRoleEnvironment.GetConfigurationSettingValueです。

于 2013-02-26T17:34:28.820 に答える
0

STSweb.configに「certificateValidationMode」を追加することでなんとか成功しました。

于 2013-02-27T13:10:45.213 に答える