我们有需要两个证书的ASP.NET应用程序MVC5:在AWS Elastic Beanstalk部署中将证书自动部署到Windows证书存储?
- 的X509椭圆曲线证书和它相应的私钥(* .PFX)
- 的X509椭圆曲线证书(* .CER)
在Windows Server 2012 R2的证书存储区(“本地计算机”帐户,“个人”存储)中可用。为了澄清,这些证书是由MVC5应用程序的代码使用的,并且有没有任何与SSL/TLS/HTTPS有关。
问题:如何配置AWS Elastic Beanstalk,以便在部署MVC5应用程序后,证书存储区中已具有这些证书和私钥? AWS已配置通过Elastic Beanstalk自动配置的EC2 Windows服务器,以便ASP.NET应用程序在IIS_IUSR
用户权限下运行在IIS中,所以我们还需要授予IIS_IUSR
访问证书私钥的权限。我不清楚IIS_IUSR实际上是遵循最小特权的原则,还是我授予了错误的帐户权限 - 但它确实有效(见下文)。我们目前正在通过适用于Visual Studio 2013的AWS Toolkit进行部署,但如果能够解决主要问题,则可以使用其他部署技术。
目前,我们拥有一个丑陋的,手动的解决方法是
- 远程连接到每个实例,每个实例执行下列操作
- 上传证书文件(* CER和* PFX)
- 手动运行批处理文件以将它们加载到证书存储区(由于它们是自签名证书,因此也必须将它们添加到根存储区)。该批处理文件看起来像
certutil -f -addstore Root OurCert-SS.cer // just a CER version of the PFX below certutil -f -addstore Root RemoteCert-SS.cer certutil -f -p test -importPFX MY OurCert-SS.pfx certutil -f -addstore MY RemoteCert-SS.cer
- 手动打开MMC =>证书(本地计算机)=>给
IIS_IUSRS
的Full control
权限证书的私钥(否则ASP.NET应用程序可以拿不到私钥)。在this post
详细显然,这极大地杀死了抽象的PaaS应该提供随时随地,因为规模的实例或得到回收,我们要做的上述:(...所以希望得到任何帮助。