私は、セキュリティ証明書を介して .Net SOAP ベースの Web サービスを呼び出している Web サーバーを認証するための安全な方法を実装しようとしています。
受信サーバーに認証局をセットアップして、受信サーバーと呼び出しサーバーにインストールした証明書を発行できるようにしました。また、この認証局を信頼できる機関として呼び出し側サーバーの証明書ルート ストアに追加しました。
私が現在抱えている問題は、IIS を証明書を「要求」するように設定すると、一度に 25 行、行ごとに約 25 フィールド、おそらくそれぞれ 100 文字の長さの小さなデータセットしか送信できないことです。送信するデータは、対称キーで既に暗号化されています。クライアント証明書の要件を削除すると、送信できるデータの量は約 25000 行になります。クライアント証明書「必須」でこれを行うと、
HTTP 413: 要求エンティティが大きすぎます
私の推測では、要件によって非対称暗号化が両方の方法でオンになり、データ量が指数関数的に増加する可能性があります。具体的には、web.configを変更しようとしました
<httpRuntime targetFramework="4.5" maxRequestLength="20000000" executionTimeout="3600" />
ただし、データセットで 50 行を送信しても、これは効果がないようです。
私も追加したいと思います
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="100000"
しかし、どこに行くのかわかりません。
を使用してクライアント証明書を送信します
Dim S as new webmethodname.webmethod
Dim x509 As X509Certificate = X509Certificate.CreateFromCertFile("filelocation")
s.ClientCertificates.Add(x509)
私が考えることができる2つの解決策は
- データ制限をさらに引き上げるか、私を止めているフィールド制限を見つけてください
- 一度に小さいバッチを送信します。
- この目的でのクライアント証明書の使用を放棄し、別の解決策を探してください。
これを行う適切な方法に関するアドバイス、または SSL と PKI を使用してサーバーからサーバーへの舞台裏で正確に何が起こっているかについての情報をいただければ幸いです。