2013-02-12 13 views
6

Webアプリケーションがあります。このWebアプリケーションは、「公開」オプションを使用して3つのWebサーバーに公開しています。WebConfigの暗号化

Web設定ファイルのconnectionstringsセクションを暗号化します。以下のコマンドは、それを行います。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" c:\inetpub\application 

しかし、私はRDP(リモートデスクトップ)への各サーバーに持っていて、(クライアントPCから)このようにそれを実行することはできませんとして、各サーバー上でコマンドを実行します。

\サーバー名\ C $ \ WINDOWS \ Microsoft.NET \ Frameworkの\ v2.0.50727の\ Aspnet_regiis.exeに-pef "のconnectionStrings" \サーバー名\ C $ \のinetpub \アプリケーション

これを行うには良い方法はあります:おそらく:

1)Execu TE 2を公開した後、サーバー上のコマンドライン)あなたが出版した後、バッチファイル を実行することができますVisual Studioで ビルドオプションを使用し

+0

あなたのWebサーバーを信頼しない理由を尋ねることがあります。また、通常、展開パッケージを生成するときに、接続文字列を削除する必要があります。これを処理し、IISコンソールから接続文字列を追加するようにIISサーバーを構成しました。 web.configファイルに接続文字列を渡すよりも、マシン設定/負荷分散を簡単に行うことができます。 – Colton

+0

ウェブアプリケーションは、ローカルエリアネットワーク内のいくつかのクライアントPCに配備されています。私が接続文字列セクションを暗号化しない場合、誰でもログオンしているデータベースのパスワードを見ることができます。 – w0051977

+1

十分な公正...統合セキュリティを使用することは可能でしょうか?サーバーが正しく設定されていれば、これで問題は完全に緩和されますが、SQLのAD認証を設定することは非常に官僚的な処理です。 – Colton

答えて

1

完了した統合セキュリティはオプションではない場合、私はあなたMS Web Deploy示唆。

Visual Studio 2012でdeployment packageをビルドすると、zipファイルとコマンドラインスクリプトファイルが作成されます。そのスクリプトファイルを変更してweb.configを暗号化するか、独自のバッチスクリプトまたはpowershellスクリプトをロールバックすることができます。

+0

Web配置の暗号化のサポートは、Web配置のバージョン3.5で追加されました。 https://blogs.iis.net/msdeploy/archive/2013/07/09/webdeploy-3-5-rtw.aspx – cederlof

3

サーバー上のweb.configのconnectionStringsセクションを暗号化し、この暗号化セクションをWeb [CONFIGURATION_FOR_SERVER] .config変換ファイルに追加します。キーは、元のweb.configのconnectionStrings部分をこの新しい暗号化された値に置き換えることを示す最初の行です。パブリッシュするサーバーごとに新しい変換ファイルが必要になります。 Visual Studioは、この変換ファイルの形式についてすなわち

Warning 15 The element 'connectionStrings' has invalid child element 'EncryptedData' in namespace 'http://www.w3.org/2001/04/xmlenc#'. List of possible elements expected: 'add, remove, clear'. C:\DevTFS\YourProject\Web.Stage.config 14 6 YourProject 

を警告(ないエラー)を発生させます - 私はこれを回避するには、正しい構文を発見していないので、私は提案を開いんだけど、それはまだ動作しますだから私は幸せだ。この上の完全なブログのエントリ:http://randomdotnetnuggets.blogspot.com.au/2013/05/publishing-encrypted-connection-strings.html

<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider" xdt:Transform="Replace"> 
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" 
    xmlns="http://www.w3.org/2001/04/xmlenc#"> 
    <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" /> 
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> 
    <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> 
     <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" /> 
     <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> 
     <KeyName>Rsa Key</KeyName> 
     </KeyInfo> 
     <CipherData>   
     <CipherValue>t8p7aOZTjMo...zE6FAAI=</CipherValue> 
     </CipherData> 
    </EncryptedKey> 
    </KeyInfo> 
    <CipherData> 
    <CipherValue>Vy1TZWY8....ic+Qg6T7U</CipherValue> 
    </CipherData> 
</EncryptedData> 

0

これは、古い質問ですが、この答えは、誰かを助けるかもしれません。

ロードバランスまたはWebファームのシナリオでは、ファイルを一度暗号化してweb.configを他のマシンにコピーできます。ただし、これを行うには、各Webサイトで同じマシンキーを使用する必要があります。

https://msdn.microsoft.com/en-us/library/dtkwfdky.aspx

がこの探して、誰に役立ちます願っています。