Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 管理加密连接字符串(IIS)的部署_Security_Iis_Encryption_Iis 7_Connection String - Fatal编程技术网

Security 管理加密连接字符串(IIS)的部署

Security 管理加密连接字符串(IIS)的部署,security,iis,encryption,iis-7,connection-string,Security,Iis,Encryption,Iis 7,Connection String,我已经在我的电脑里运行了 aspnet_regiis -pe "connectionStrings" -app "/MyApp" -site "MySite" 它在web配置中创建了一个加密的xml元素 现在每次我将我的应用程序迁移到新环境时 web.config正在“web转换”为新的web.config,然后部署。 我知道每台机器的加密是唯一的。 我试图复制加密的值,但它不起作用 我是否需要在每次部署时在每台机器上运行“aspnet_regiis-pe…”命令? 有更好的做法吗 我的计算机

我已经在我的电脑里运行了

aspnet_regiis -pe "connectionStrings" -app "/MyApp" -site "MySite"
它在web配置中创建了一个加密的xml元素

现在每次我将我的应用程序迁移到新环境时
web.config正在“web转换”为新的web.config,然后部署。
我知道每台机器的加密是唯一的。 我试图复制加密的值,但它不起作用

  • 我是否需要在每次部署时在每台机器上运行“aspnet_regiis-pe…”命令?
    有更好的做法吗
  • 我的计算机在encription中使用的唯一密钥是什么/在哪里?
    我需要保护它以防潜在的攻击吗?
    谢谢 1) 是的,我建议将未加密的web.config文件部署到新服务器,然后作为“部署过程”的一部分运行加密命令

    2) 操作系统和框架应该已经为您保护默认加密密钥。您可以通过以下链接了解更多关于这一切的内部内容:

    “本演练使用在Machine.config文件中指定的名为“RsaProtectedConfigurationProvider”的默认RsaProtectedConfigurationProvider提供程序。默认RsaProtectedConfigurationProvider提供程序使用的RSA密钥容器名为“NetFrameworkConfigurationKey”。”

    请记住,用于加密/解密web.config文件的密钥不是机器密钥(它是单独的)。但是,如果要部署到web场,您还需要确保机器密钥一致,否则会出现奇怪的错误。

    1)是的,我建议将未加密的web.config文件部署到新服务器,然后作为“部署过程”的一部分运行加密命令

    2) 操作系统和框架应该已经为您保护默认加密密钥。您可以通过以下链接了解更多关于这一切的内部内容:

    “本演练使用在Machine.config文件中指定的名为“RsaProtectedConfigurationProvider”的默认RsaProtectedConfigurationProvider提供程序。默认RsaProtectedConfigurationProvider提供程序使用的RSA密钥容器名为“NetFrameworkConfigurationKey”。”


    请记住,用于加密/解密web.config文件的密钥不是机器密钥(它是单独的)。但是,如果要部署到web场,还需要确保机器密钥一致,否则会出现奇怪的错误。

    1。谢谢我想到了在Deployment服务器中使用一个签名密钥的可能性。然后用它对所有部署的环境进行签名,并用二进制文件发布密钥。运行加密命令的进程将是谁?不确定我是否遵循1。每个服务器可能都有不同的密钥(这很好)。您只需将包含web.config(未加密)的web应用程序复制到服务器并在IIS中进行设置,然后运行aspnet_regiis命令对web.config的任何部分进行加密即可。您可以在每台服务器上运行它,这只是部署应用程序过程中的另一个步骤。在2。。您需要使用可以读取密钥的标识运行加密命令,以便管理员启动。上面的链接还描述了如何授予对其他身份的读取权限。此线程对您的问题进行了更多讨论,我觉得您最感兴趣的是“web场中的web.config加密”@CarlosMagnoRosa-是的,你应该能够做到这一点。只要你不碰文件的加密部分,你就应该没事。谢谢我想到了在Deployment服务器中使用一个签名密钥的可能性。然后用它对所有部署的环境进行签名,并用二进制文件发布密钥。运行加密命令的进程将是谁?不确定我是否遵循1。每个服务器可能都有不同的密钥(这很好)。您只需将包含web.config(未加密)的web应用程序复制到服务器并在IIS中进行设置,然后运行aspnet_regiis命令对web.config的任何部分进行加密即可。您可以在每台服务器上运行它,这只是部署应用程序过程中的另一个步骤。在2。。您需要使用可以读取密钥的标识运行加密命令,以便管理员启动。上面的链接还描述了如何授予对其他身份的读取权限。此线程对您的问题进行了更多讨论,我觉得您最感兴趣的是“web场中的web.config加密”@CarlosMagnoRosa-是的,你应该能够做到这一点。只要你不碰文件的加密部分,你就可以了。