私たち(私たちのITパートナー)は、最近、WebファームサイトのDNSをいくつか変更しました。これにより、2つの運用サーバー間でラウンドロビンDNSスイッチングが行われます。この切り替え前は、WebResource.axd
ファイルに問題はありませんでした。スイッチ以来、公開パブリックURLにアクセスすると、エラーが発生します。
CryptographicException
パディングは無効であり、削除できません。
特定のサーバー自体にヒットすると、それらは正常にロードされます。私は問題を調査しましたが、2つのサーバー間で資産を共有しているため、各サーバーのweb.config
に一貫したmachineKey
が必要です。二。私の質問は:
machineKey
を生成できますか、またはこれを行うためのコードを記述する必要がありますか?web.config
にmachineKey
を追加するだけですか、2つのサーバーを連携させるために他に何かする必要があると思いますか? (両方のweb.config
には現在machineKey
がありません)これは答えるべきです:
方法:ASP.NET 2.0でMachineKeyを構成する-Webファーム展開の考慮事項
Webファームの展開に関する考慮事項
アプリケーションをWebファームに展開する場合は、各サーバー上の構成ファイルがvalidationKeyとvalidationKeyに対して同じ値を共有していることを確認する必要があります。これらはそれぞれハッシュと復号化に使用されます。どのサーバーが連続した要求を処理するかを保証できないため、これが必要です。
手動で生成されたキー値では、設定は次の例のようになります。
<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7 AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B" decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F" validation="SHA1" decryption="AES" />
アプリケーションを同じサーバー上の他のアプリケーションから分離する場合は、ファーム内の各サーバー上の各アプリケーションのWeb.configファイルに配置します。各アプリケーションに個別のキー値を使用するようにしてください。ただし、ファーム内のすべてのサーバーで各アプリケーションのキーを複製してください。
つまり、マシンキーをセットアップするには、次のリンクを参照してください: マシンキーのセットアップ-Orchard Documentation 。
IIS Managerを使用したマシンキーのセットアップ
OrchardがインストールされているサーバーのIIS管理コンソールにアクセスできる場合は、マシンキーをセットアップする最も簡単な方法です。
管理コンソールを起動して、Webサイトを選択します。マシンキー設定を開きます:
マシンキーコントロールパネルには次の設定があります。
検証キーと復号化キーの両方の「実行時に自動生成」のチェックを外します。
パネルの右側にある「アクション」の下の「キーの生成」をクリックします。
「適用」をクリックします。
web.config
タグの下にあるすべてのwebservers
のsystem.web
ファイルに次の行が存在しない場合は追加します。
<machineKey
validationKey="21F0SAMPLEKEY9C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
decryptionKey="ABAASAMPLEKEY56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>
マシンキーとweb.config
ファイルの永続的なバックアップがあることを確認してください
IIS 7.5以降を使用している場合は、IISからマシンキーを生成し、web.configに直接保存します。Webファーム内で新しいweb.configを各サーバーにコピーするだけです。
web.config
ファイルを変更します。web.config
ファイルに保存されます。@ MachineKeyを生成する最も簡単な方法–ヒントとコツ:ASP.NET、IIS and .NET development…
padding Oracle asp.netの脆弱性 から学んだことを確認してください(パッチを適用しましたか?...)、 保護されたセクションを使用してマシンキーを暗号化します およびその他の重要な構成。
別のオプションは、マシンレベルのweb.configで設定することで、Webサイトフォルダーでも設定しません。
それを生成するには、Davidの回答にあるリンクされた記事と同じようにします。