StackOverflow、ブログ、その他のサイトで約 1000 の投稿を見てきましたが、私が抱えている問題を明らかにするものはありませんでした。
設定:
- .NET Framework 3.5 (申し訳ありませんが、アップグレードできません)、WebHttpBinding を使用する WCF セルフホステッド サービス (IIS ではありません)
- インターフェイスで WebGet を使用する単一のエンドポイント
- NO .config ファイル -- すべてがプログラムで作成されています
- サービスはカスタム ポートにバインドされており、他のサービスや Web サイトとポートを共有していません
導入対象:
- XP SP3、2003、Vista、7、8、2008
問題: Vista、7、8、2008 では問題ありません。HTTP と HTTPS でサービスを起動し、localhost にバインドされた自己署名証明書とカスタム ポートのマシン名を使用して実行しています。
- しかし、XP では、HTTP でしか機能しないため、サービス自体が適切に機能していることはわかっています。HTTPS で、SSL の障害により接続できません。
- ブラウザで直接 URL にアクセスすると、SSL 例外が表示されます。
- IE では、証明書が信頼されていないという警告が表示されます。例外を許可すると、サービスに到達して実行されます。信頼できるサイトに追加
https://localhost
すると、警告が表示されなくなり、問題なく URL にアクセスできます。 - Chrome で同じ URL にアクセスすると、エラー 107 ERR_SSL_PROTOCOL_ERROR が表示され、バイパスできません。
- Firefox で ssl_error_rx_record_too_long エラーが発生し、これもバイパスできません。
証明書のいくつかの順列とサービスへの割り当て方法 (httpcfg など) を試しましたが、結果はすべて同じ (またはさらに悪い) でした。そこで、自分が行ったことを把握しようとして行ったり来たりして、既存の設定をバラバラにする代わりに、2 つの質問があります。
- IISなしでローカルホスト用のXPで信頼できる証明書を作成することさえ可能ですか...
- プログラムですべてを実行して、自己ホスト型の WCF サービスにバインドする最良の方法は何ですか? これを繰り返すのは、これらの問題について支援を得ようとする他の試みは、常に構成ファイルに何を入れるべきかを教えてくれる人々につながるからです。
心に留めておくべきこと:私はすでに、自己署名証明書を使用した SSL の下で Windows バージョン > XP/2003 でこれをすべて正常に動作させているので、基本がある程度健全であることを知っています。XPでlocalhost用に証明書をセットアップできないようです。