使用 ASP.NET IIS 注册工具 (Aspnet_regiis.exe) 加密或解密 Web 配置文件的各节,这种加密只适用于程序部署之后防止配置文件泄露。当程序中需要使用加密的配置节时会自动解密;使用服务器 A 加密的配置节只能使用服务器 A 解密
相关文档
加密和解密配置节
加密和解密 Web 配置节
Aspnet_regiis.exe 工具位于 %windows%\Microsoft.NET\Framework\versionNumber 文件夹中
加密 Web 配置节
1 2 3 4 5 6 7 8 9
| <configuration> <connectionStrings> <add name="EFDbContext" connectionString="Data Source=(local);Initial Catalog=DB;User ID=sa;Password=sa123" providerName="System.Data.SqlClient" /> </connectionStrings> <appSettings> <add key="ServiceAddress" value="http://192.168.1.1:80/"/> </appSettings> </configuration>
|
1 2 3 4 5 6 7 8 9 10
| 加密: 以管理员权限运行CMD 1.CD到ASP.NET IIS 注册工具目录 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 2.加密配置节 aspnet_regiis.exe -pe "connectionStrings" -app "/" -site 1 * -pe 对配置节进行加密 * "connectionStrings" 要加密的配置节 * -app "/" 配置文件路径,此处为站点根目录 * -site 1 站点ID
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| <configuration> <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider"> <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>H4GqNkkSionoOKW1sqjvHHZeO/tOUK8st3T9aUjjr7YcucQlcA0EwLb8uZ79YpHpebxVIlMwanc4eDbAfAW4K7B+jaQxMktVcUqrwmkPZQRiW52FnEhRiQte2Dj8o4/ZJ34MqyoM7h3uRuccxwBhZZWtaqAI+E1zHHwt6nJoanXjKuNV2jPhArE4P9UcpiNWFNoHuW4vqUPeYKDqgPYd7F9qmf+7Q/I/dUuCjHzOGzuWe3ZMijHxYrO9Kmah+iy2kteaU2EYwdD1VvriGKTE21MJthXVO0BESAk+o4oJT2BHMPI62cV7hmOcqTdYydHSzntoIIqk+ueBwhd5UPsNvQ==</CipherValue> </CipherData> </EncryptedKey> </KeyInfo> <CipherData> <CipherValue>fQveikJJPmlGGZ1xsCYNgG9Fy1tr/3DXKQKjBtTNfDdD1Fr+L6TsFsd95kpP6CR6jOmUsAQmMUsXpimWAhk5djojzkVOKloF3j91iVKDHxCT27S4VuHtAIgVHhgWJv4MOSst8vjHBf85662BIi74rBU1D21cw3L8EWe31Z4nEONwxtrKnpeJBPB4maVwETnu83JTal3bgWMtcE7vbTILmrYuKWlcakzZNlQ7Mhhoc0zCBuI5P41fjuGTK18r05oEObDqR8gLDUoipgE83zezaA==</CipherValue> </CipherData> </EncryptedData> </connectionStrings> <appSettings configProtectionProvider="RsaProtectedConfigurationProvider"> <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>gC1IpwdnSeYMW9CuvMEnLI2MbXt4Y4Ilew9bm8iG6RWEAvLiJ4pnQZZ1qP+ycsPeVHrjbGuBZViOa/t3ZMfI5FOOcDmlanVmyw+QmUCUzTtNLfLoUJaN3JGBQkioG6CVxlFcbo9POop8BXJAbRLymL+SpryXTrcx3nlJjj5TMDWXE170To88ZG5ll0dPujSjJ6kgOkURjCAhT7xbFKsS+l/E0FX36bfqbtzUmWb7ong4MVwe86z7eR5Ega9+6iYpw5nQhuSLR9IjOftLRan2/EB2iFiiopBQrwXB6pCzC5q08Yyq4pqdn5G1dEVBKdanljJiXrltxGwKu0fb524hQg==</CipherValue> </CipherData> </EncryptedKey> </KeyInfo> <CipherData> <CipherValue>dxHMzbfl45rlnUqRuIIFWFFyYuVLsh+VZWuYWJV7afWOC1bFeGREX2d+2JN/hkaPl9x+oFDt5llznHvrbsVPK+cCDjdmPgYhxMWXG51ENsqCRBizPbD7QnFeQlIwT7eQVHUEZbMyeAE=</CipherValue> </CipherData> </EncryptedData> </appSettings> </configuration>
|
解密配置节
1 2 3 4 5 6 7 8 9 10
| 解密: 以管理员权限运行CMD 1.CD到ASP.NET IIS 注册工具目录 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 2.解密配置节 aspnet_regiis.exe -pd "connectionStrings" -app "/" -site 1 * -pd 对配置节进行解密 * "connectionStrings" 要解密的配置节 * -app "/" 配置文件路径,此处为站点根目录 * -site 1 站点ID
|
帮助信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis.exe ?
-- ASP.NET 注册选项 --
-i 安装此版本的 ASP.NET,并更新根级别上的 IIS 配置以使用此版本的 ASP.NET。
-ir 安装此版本的 ASP.NET,仅注册。请不要更改任何 Web 应用程序以使用此版本。
-iru 安装此版本的 ASP.NET。如果有任何现有的应用程序使用 ASP.NET,则不会更改 IIS 配置以使用此版本。
-enable 使用 -i、-ir 或 -r 指定 -enable 以后,将在 IIS 安全控制台(IIS 6.0 或更高版本)中启用 ASP.NET。
-disable 使用 -i、-ir 或 -r 指定 -disable 以后,将在 IIS 安全控制台(IIS 6.0 或更高版本)中禁用 ASP.NET。
-s <路径> 在指定的路径以递归方式安装此版本的脚本映射。 例如,aspnet_regiis.exe -s W3SVC/1/ROOT/SampleApp1
-sn <路径> 在指定的路径以非递归方式安装此版本的脚本映射。
-r 安装此版本的 ASP.NET,并更新 IIS 元数据库根处的脚本映射和根以下的所有脚本映射。无论原始版本是什么,都将现有的脚本映射升级到此版本。
-u 卸载此版本的 ASP.NET。将此版本现有的脚本映射重新映射到相应计算机上安装的其余 ASP.NET 版本中最高的版本。
-ua 卸载计算机上所有版本的 ASP.NET。
-k <路径> 从指定的路径中以递归方式移除所有版本的 ASP.NET 的所有脚本映射(Windows Vista 和更高版本不支持)。 例如,aspnet_regiis.exe -k W3SVC/1/ROOT/SampleApp1
-kn <路径> 从指定的路径中以非递归方式移除所有版本的 ASP.NET 的所有脚本映射(Windows Vista 和更高版本不支持)。
-lv 列出计算机上安装的所有版本的 ASP.NET,状态和安装路径也一并列出。
-lk 列出所有 IIS 元数据库键的所有路径(连同版本在内),ASP.NET 的脚本映射是在这些元数据库键中进行的。那些从父键继承了 ASP.NET 脚本映射的键不会显示(Windows Vista 和更高版本不支持)。
-c 将此版本的客户端脚本安装到每个 IIS 站点目录的 aspnet_client 子目录中。
-e 从每个 IIS 站点目录的 aspnet_client 子目录中移除此版本的客户端脚本。
-ea 从每个 IIS 站点目录的 aspnet_client 子目录中移除所有版本的客户端脚本。
-ga <用户> 为指定的用户或用户组授予权限,使其可以访问 IIS 元数据库和 ASP.NET 使用的其他目录。
-- 配置加密选项 --
-pe 节 对配置节进行加密。可选参数: [-prov provider] 使用此提供程序进行加密。 [-app virtual-path] 在此虚拟路径加密。虚拟路径必须以正斜杠开头。如果此虚拟路径为“/”,则表示站点的根目录。如果未指定 -app,则对根目录下的 web.config 进行加密。 [-site site-name-or-ID] 在 -app 中指定的虚拟路径的站点。如果未指定,将使用默认网站。 [-location sub-path] 位置子路径。 [-pkm] 对 machine.config 而不是 web.config 进行加密/解密。
-pd 节 对配置节进行解密。可选参数: [-app virtual-path] 在此虚拟路径解密。虚拟路径必须以正斜杠开头。如果此虚拟路径为“/”,则表示站点的根目录。如果未指定 -app,则对根目录下的 web.config 进行解密。 [-site site-name-or-ID] 在 -app 中指定的虚拟路径的站点。如果未指定,将使用默认网站。 [-location sub-path] 位置子路径。 [-pkm] 对 machine.config 而不是 web.config 进行加密/解密。
-pef 节 web-app-physical-dir 对配置节进行加密。可选参数: [-prov provider] 使用此提供程序进行加密。
-pdf 节 web-app-physical-dir 对配置节进行解密。
-pc 容器 在 ContainerName 中创建一个 RSA 密钥对。可选参数: [-size key-size] Key-size。默认值为 1024。 [-pku] 是用户容器而不是计算机容器。 [-exp] 使私钥可导出。 [-csp provider] 要使用的 Csp 提供程序。
-pz 容器 删除 ContainerName。可选参数: [-pku] 是用户容器而不是计算机容器。
-pi 容器文件 从 XML 文件中导入一个 RSA 密钥对。可选参数: [-pku] 是用户容器而不是计算机容器。 [-exp] 创建可导出的密钥。 [-csp provider] 要使用的 Csp 提供程序。
-px 容器文件 向 XML 文件导出一个 RSA 密钥对。可选参数: [-pku] 是用户容器而不是计算机容器。 [-pri] 包括私钥。 [-csp provider] 要使用的 Csp 提供程序。
-pa 容器帐户 向容器中添加对帐户的访问。参数: [-pku] 是用户容器而不是计算机容器。 [-csp provider] 要使用的 Csp 提供程序。 [-full] 添加完全访问(默认为读访问)。
-pr 容器帐户 从容器中移除对帐户的访问。参数: [-pku] 是用户容器而不是计算机容器。 [-csp provider] 要使用的 Csp 提供程序。
-- 配置远程访问选项 --
-config+ 启用对配置的远程访问。
-config- 禁用对配置的远程访问。
|