将预加密的配置文件部署到生产环境

2023-11-30

我们想要加密部署到服务器的所有 Web 应用程序配置文件。我们更愿意将其作为构建过程中的一个步骤,并将预加密的文件包含在 MSI 中。

这意味着我们的构建服务器(加密器)和生产服务器(解密器)需要相同的密钥。所以我现在正在尝试做一个非常基本的测试。在 MachineA 上加密 Web.Config - 在 MachineB 上解密。这是迄今为止我尝试测试的内容

在我的本地电脑上创建一个新的 RSA 密钥对容器。

aspnet_regiis -pc "MyContainer" -exp

向我和 NetworkService 用户授予 ACL 权限。

aspnet_regiis -pa "MyContainer" "MyDomain\My.Account"
aspnet_regiis -pa "MyContainer" "NT AUTHORITY\NETWORK SERVICE"

将该密钥对导出到 xml 文件

aspnet_regiis -px "MyContainer" C:\MyContainer.xml -pri

将该文件复制到另一台电脑并导入

aspnet_regiis -pi "MyContainer" C:\MyContainer.xml

授予我的同事和他的机器 NetworkService 用户对新导入文件的权限

aspnet_regiis -pa "MyContainer" "MyDomain\My.Colleague"
aspnet_regiis -pa "MyContainer" "NT AUTHORITY\NETWORK SERVICE"

接下来,我在本地计算机上创建了一个非常简单的 web.config。

<?xml version="1.0"?>
<configuration>
    <appSettings>
        <add key="SecretKey" value="ValueWeWantToHide" />
    </appSettings>
    <configProtectedData>
        <providers>
            <add name="SampleProvider"
                 type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
                 keyContainerName="MyContainer"
                 useMachineContainer="true" />
        </providers>
    </configProtectedData>
</configuration>

我可以使用命令轻松地加密和解密此处的 appSettings 部分。他们成功加密和解密,并且加密部分在加密后标记有正确的提供程序(<appSettings configProtectionProvider="RsaProtectedConfigurationProvider">)

aspnet_regiis -pef appSettings D:\testapp
and
aspnet_regiis -pdf appSettings D:\testapp

但是,当我将加密的 web.config 复制到同事的 PC 上,并尝试使用上面的命令对其进行解密时,解密失败。它给出了一个非常无用的错误

Failed to decrypt using provider 'RSAProtectedConfigurationProvider'. Error message from provider: Bad Data

现在我被困住了。我在 SO 上发现了几个类似的问题,但没有具体解决他们的问题。我是否在某个地方错过了一步。我假设my密钥设置有效,因为我可以本地加密/解密。我是否可能搞砸了关键导入或错过了同事机器上的某些步骤。任何帮助表示赞赏。


您正在使用加密/解密default您计算机上的提供商(每台计算机都不同)。

您需要指定提供商:

aspnet_regiis -pef appSettings D:\testapp -prov "SampleProvider"

在你同事的机器上:

aspnet_regiis -pdf appSettings D:\testapp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将预加密的配置文件部署到生产环境 的相关文章

  • 直接将 .aspx 转换为 .pdf [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Nhibernate:连接表并从其他表获取单列

    我有以下表格 create table Users Id uniqueidentifier primary key InfoId uniqueidentifier not null unique Password nvarchar 255
  • 检测 TextBox 中的 Tab 键按下

    I am trying to detect the Tab key press in a TextBox I know that the Tab key does not trigger the KeyDown KeyUp or the K
  • 选择 asp.net CheckBoxList 中的所有项目

    ASP NET 和 C 我想要一个带有 全选 项目的复选框列表 当这个特定项目是 已选择 所有其他都将被选择 也 当选择被删除时 这个项目 也将来自所有人 其他物品 选中 取消选中 任何其他项目只会有一个 对特定项目的影响 无论选择状态如何
  • 如何使用 System.Net.Mail 将电子邮件发送到多个地址

    我有 smtp 电子邮件功能 它适用于单个地址 但在多个地址中存在问题 我使用以下代码行传递多个地址 MailAddress to new MailAddress email protected cdn cgi l email protec
  • 如何在向 MSMQ 发送消息时启用负源日志?

    我试图通过 System Messaging MessageQueue NET 发送消息 但消息不断消失 我见过有人建议启用负源日志 但似乎不知道这是如何完成的 任何人 Message m new Message m UseDeadLett
  • 获取 System.Drawing.Font 宽度?

    我正在使用 Net 工具进行一些 2D 绘图 System Drawing Font uses a GetHeight 返回以像素为单位的高度 我缺少一个GetWidth 检索宽度 我应该用什么 Use Graphics MeasureSt
  • 为什么 EF 5.0 在编译为 sql 时不支持此 EF 4.x LINQ 语法?

    我有一些代码最近从 EF 4 2 升级到 EF 5 0 实际上是 EF 4 4 因为我在 Net 4 0 上运行 我发现我必须更改查询的语法 我很好奇为什么 让我从问题开始 我有一个由客户端定期填充的事件日志表 对于每个事件日志 都会在报告
  • 如何在静态方法中获取会话变量的值?

    我正在使用带有 jQ uery 的 ASP NET 页面方法 如何在 C 中的静态方法中获取会话变量的值 protected void Page Load object sender EventArgs e Session UserName
  • CSS、Javascript 和图像的长度为零

    我正在尝试将 ASP NET MVC 1 0 Visual Studio 2008 项目移植到 ASP NET MVC RC 2 Visual Studio 2010 该项目 并且一直 在 IIS 7 上运行 动态内容 由控制器提供的所有内
  • Api 控制器中长时间运行的任务(使用 Web API,自托管 OWIN)

    我想在自托管 OWIN 环境中的 ApiController 中运行长时间运行的任务 例如 4 5 分钟 但是 我想在开始该任务后 一旦开始长时间运行的任务 就发回响应 而不等待它完成 这个长时间运行的任务与 HTTP 无关 并且顺序运行一
  • 在 JavaScript 中生成 RSA 密钥对

    我最近发现了这个 RSA JavaScript 库 http www ohdave com rsa http www ohdave com rsa 但是 它要求预先生成密钥 这是我的问题 问题 我想在 JavaScript 中生成 RSA
  • Wix - 自定义安装目录

    我使用的是 Wix 3 x 用户应该能够选择目标目录 我的Setup wxs目前是这样的 http pastebin com uH1EjbDQ http pastebin com uH1EjbDQ 询问用户自定义目标目录的最简单方法是什么
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • 为什么密码错误会导致“填充无效且无法删除”?

    我需要一些简单的字符串加密 所以我编写了以下代码 有很多 灵感 来自here http www codeproject com KB security DotNetCrypto aspx create and initialize a cr
  • 从 Orchard 内的主题渲染图像

    我刚刚选择 Orchard 来构建我的博客 作为创建这个新博客的努力的一部分 我正在创建一个自定义主题 这个自定义主题同时具有 CSS 和图像 我的问题 我的问题基本上可以归结为 如何渲染属于主题一部分的图像 到目前为止我已经尝试过的 我尝
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • 哪些属性有助于运行时 .Net 性能?

    我正在寻找可用于通过向加载器 JIT 编译器或 ngen 提供提示来确保 Net 应用程序获得最佳运行时性能的属性 例如我们有可调试属性 http msdn microsoft com en us library k2wxda47 aspx
  • .NET UI 元素线程限制的原因

    我们知道 除了实例化元素的线程之外 不可能从任何线程执行操作任何 UI 元素属性的代码 我的问题是 为什么 我记得当我们使用 COM 用户界面元素时 在 COM Visual Basic 6 0 时代 所有 UI 元素都是使用 COM 类和
  • 如何打开 Windows 资源管理器窗口并选择特定文件夹

    我有一个 winform 应用程序 这个 winform 应用程序创建了几个文件 我想在我的应用程序中实现 查找目标 功能来显示这些文件 这些文件位于同一文件夹中 看图片 假设我创建了几个文件 C Test 文件夹 该文件夹包含以下文件 C

随机推荐

  • 在 CasperJS 的表单之外使用选择

    我想选择一个条目进入选择 我如何使用 CasperJS 做到这一点 您需要了解的一些信息 我无法修改页面 我的任务只是编写测试 选择标记不包含在表单中 我无法使用document querySelector MY SELECT select
  • Angular 2 节点波本错误

    ERROR in node modules css loader sourceMap false importLoaders 1 node modules postcss loader lib ident postcss sourceMap
  • 去掉标签,但保留第一个

    例如我怎样才能保留第一个img标记但剥离所有其他的 来自 HTML 字符串 example p some text img src aimage jpg alt desc width 320 height 200 img src aimag
  • iPhone 上的 Lua

    我正在尝试在 iPhone 上运行时加载 Lua 脚本 有可能这样做吗 我该如何开始使用 Lua 我找不到东西 我唯一能找到的是这应该是可能的 但我想知道如何实现 查看科罗娜SDK
  • 熊猫留在原地

    我有一个大数据框df和一个小数据框df right有 2 列a and b 我想做一个简单的左连接 查找a无需复制df 我想出了这段代码 但我不确定它有多强大 dtmp pd merge df a df right on a how lef
  • SKSpriteNode 框架偏离

    我正在尝试从 UIBezierPath 创建一个开放圆 并将其转换为 SKShapeNode 稍后将其转换为 SKSpriteNode 我遇到了一个问题 我不知道如何缩小精灵 而它的线宽没有缩小 您可以在这里查看解决方案 调整精灵大小而不缩
  • C#,Gmap.net:使用 Gmap.net 库在谷歌地图上绘制 5 个标记时生成异常

    我正在使用 Gmap net 库在谷歌地图上的三角测量算法进行计算后在特定的时间绘制标记 当我为两个标记工作时 它工作正常 但当我尝试绘制 5 个标记时 它向我显示异常 System InvalidOperationException 类型
  • Python使用key和lambda进行排序,lambda有什么作用?

    所以我有一个值列表 如下所示 values date 2015 04 15T11 15 34 val 30 val 90 date 2015 04 19T11 15 34 val 25 date 2015 04 16T11 15 34 我用
  • Pandas 循环访问数据帧列表和更改索引

    这是一个基本问题 但我想循环遍历数据帧列表 并对于每个数据帧 将索引设置为数据帧中的列之一 下面代码的问题是它没有使用新索引保存数据框 如何格式化此 For 循环 以便数据帧在 for 循环之外永久更改 谢谢 dflist df 1 df
  • Xamarin Studio 中的 java Lang UnsupportedClassVersion 错误

    当我构建项目时 出现以下错误 我该如何纠正这个问题 C Program Files x86 MSBuild Xamarin Android Xamarin Android Common targets 3 3 错误 java lang Un
  • Windows Phone 8 中的地图点击事件/鼠标按下事件?

    我正在使用 Windows Phone 模拟器 我写了一个非常简单的程序 当用户点击地图一次时在地图上绘制一个标记 然后我使用map tap事件 并获取点击的位置 如下所示 private void map Tap object sende
  • 4.1 中的 java.lang.NoClassDefFoundError 和使用 5.1.在 android studio 中使用 multidex

    三天以来我陷入了一个非常愚蠢的问题 但仍然没有运气 我使用 Parse com 进行注册和登录 我还使用 Twitter 和 Facebook 我的应用程序类 oncreate 方法 public void onCreate super o
  • MongoDB - 聚合和

    我正在尝试计算我们数据库中跟踪的总花费金额 每个订单文档包含一个字段 total price 我正在尝试使用以下代码 db orders aggregate group id null total sum total price 不幸的是
  • 角度变量生成html

    我正在尝试使用 angularJS 制作一个博客页面 在消息部分我有一个像这样的 div div class post content jsonPost message div 在变量 jsonPost message 中我得到了一个像这样
  • Mac OS X 10.9之后无法安装PIL

    我刚刚将我的 Mac 操作系统更新到 10 9 我发现我的一些 全部 Python 模块不再存在 尤其是 Image 模块 所以我尝试执行sudo pip install pil 但我收到此错误 Applications Xcode app
  • 如何使自定义控件的属性打开文件对话框?

    我有一个自定义控件 其属性保存目标计算机上存在的文件位置的名称 完整路径 确切的路径会根据目标电脑的类型而有所不同 并且通常在我将自定义控件添加到表单后立即设置 同时我仍处于项目的设计模式 以便当我的应用程序运行时 它会从以下位置获取文件名
  • 如何在 GTK 3.8 中强制刷新屏幕?

    找到了解决方案 见下文 我使用GTK 3 8gtk grid在滚动窗口中 C 代码处理大量数据并在网格中显示一些数据 GTK 在程序处理完所有数据之前不会绘制网格 添加数据时如何强制 GTK 3 刷新屏幕 I tried gtk widge
  • UIImageWriteToSavedPhotosAlbum 仅保存 10 张图像中的 5 张。为什么?

    正如标题所示 我遇到了问题 是否有任何限制 例如 每秒仅导出 3 个图像 或类似的限制 for int frameStepper 0 frameStepper lt Something frameCount frameStepper Get
  • Java - Reader 流内的动态字符串替换

    我在磁盘上有一个 文本 文件 我需要将其读入带有 Reader 对象的库中 在阅读此文件时 我想对数据执行正则表达式字符串替换 我当前的解决方案是将整个文件作为一个字符串读入内存 进行字符串替换 然后为此字符串创建一个 StringRead
  • 将预加密的配置文件部署到生产环境

    我们想要加密部署到服务器的所有 Web 应用程序配置文件 我们更愿意将其作为构建过程中的一个步骤 并将预加密的文件包含在 MSI 中 这意味着我们的构建服务器 加密器 和生产服务器 解密器 需要相同的密钥 所以我现在正在尝试做一个非常基本的