オンプレ ASP.NET Web.config のセクション暗号化

Web.config に記載する DB 接続文字列などは暗号化したい場合があるが、オンプレ ASP.NET であれば以下のような IIS コマンドを使用して、暗号化した文字列を取得できる。

> aspnet_regiis.exe -pef "connectionStrings" ~

また、接続文字列以外にもアプリの設定で暗号化したいセクションが出てくる可能性がある。 appSettings セクションを丸ごと暗号化して良いのであれば上述の方法で対応できるが、暗号化したセクションは値の変更が手間になるため、通常は <secureAppSettings> のように、暗号化用のセクションを用意して使いたいはず。

この場合、Web.config にカスタムセクションの追加を行い、そのセクションに暗号化したいアプリ設定を含め、connectionStrings と同様の方法で暗号化することで対応できる。 <appSettings> と同じ形式のセクションで良ければ、以下のセクションを追加すれば、カスタムセクションが使用できる。

<configuration>
    <configSections>
        <section name="secureAppSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </configSections>

参考 URL