在加密web.config连接字符串部分时指定特定的证书

时间:2019-05-25 23:33:48

标签: iis encryption web-config

是否可以使用特定证书(不是默认证书)对web.config中的部分进行加密,所以我可以在不同的计算机上读取相同的web.config?

还是...对部分进行加密,以便两台服务器可以自动解密?

两台机器都是Windows Server 2019

非常感谢。

1 个答案:

答案 0 :(得分:0)

根据您的描述,建议您尝试按照以下步骤使用证书对web.config进行加密和对web.config进行解密。

1。创建一个证书以加密配置文件。

$ cert = New-SelfSignedCertificate -Type DocumentEncryptionCert-主题“ CN = DevConfig” -KeyExportPolicy可导出-KeySpec KeyExchange

Export-Certificate -Cert $cert -FilePath ".\DevConfig.cer"

$mypwd = ConvertTo-SecureString -String "1234" -Force -AsPlainText

Export-PfxCertificate -Cert $cert -FilePath ".\DevConfig.pfx" -Password $mypwd

$cert

2。验证加密证书:

Import-Certificate -Filepath ".\DevConfig.cer" -CertStoreLocation cert:\LocalMachine\My

3。输入解密证书:

$mypwd = ConvertTo-SecureString -String "1234" -Force -AsPlainText

Import-PfxCertificate -FilePath ".\DevConfig.pfx" -CertStoreLocation Cert:\LocalMachine\My -Password $mypwd

4。安装WebConfigEncrypter NuGet软件包。

Install-Package WebConfigEncrypter -Version 1.1.0

5。将以下配置添加到web.config文件中。注意:您应该从生成的证书文件中找到指纹,如下所示:

enter image description here

  <configProtectedData>
    <providers>
      <add name="Pkcs12Provider" thumbprint="91cb0b7c611e54f6bfd43c4d8d178b542bc6557e" type="WebConfigEncrypter.Pkcs12ProtectedConfigurationProvider, WebConfigEncrypter" storeLocation="LocalMachine"/>
    </providers>
  </configProtectedData>

6。在web.config文件fodler中运行以下命令:

aspnet_regiis -pef "connectionStrings" "." -prov "Pkcs12Provider"

7。您将发现web.config已加密,但是如果在远程服务器上使用解密证书,则会发现您的应用程序运行良好。