6

我正在使用 AWS Elastic Beanstalk 部署一个网站,它很容易部署到负载平衡的网络场中。

现在,我想为我已部署的站点加密 web.config 中的某些部分,无论是在部署之前还是之后。

有很多关于如何使用 Aspnet_regiis.exe 工具使用 RSA 加密部分的文章,但是,问题是当您处理网络场时,因为您需要将私钥导出到其他服务器。

从这篇文章http://msdn.microsoft.com/en-us/library/ff647398.aspx看到:

Web 场方案如果要在 Web 场中的多台服务器上部署相同的加密配置文件,则应使用 RSAProtectedConfigurationProvider。该提供程序使您可以轻松地在一台服务器计算机上加密数据,然后导出解密数据所需的 RSA 私钥。然后,您可以将配置文件和导出的密钥部署到目标服务器,然后重新导入密钥。

但是,我的问题是,在负载均衡的环境中,由于 Autoscale 规则,服务器会上下波动,我需要一个流程来自动管理密钥,即在新部署的服务器上导入私钥用于加密 Web.config。

有没有人这样做或可以提供一些见解?

4

2 回答 2

5

按照@kukido 的建议,您需要做的是创建一个包含以下内容的 .ebextension 文件。

commands:
  encryptConfig:
    command: aspnet_regiis.exe -pe "connectionStrings" -app /
    cwd: %windir%\\Microsoft.NET\\Framework64\\v4.0.30319
于 2015-06-27T02:44:53.233 回答
1

你能利用容器命令来导入私钥吗?每次初始化实例时都会执行该命令。一旦您开始将密钥保存在持久存储(例如 S3)中,那么自动缩放就不应该成为问题。

在运行 Windows 的 EC2 实例上自定义软件有更多关于容器命令的详细信息。

于 2013-12-17T17:30:47.763 回答