WCF使用凭据和IIS以编程方式启用TLS

时间:2019-07-29 16:43:30

标签: c# wcf ssl credentials

我正在开发一项服务,以在WCF中使用基于SSL / TLS凭据的安全性。端点将使用IIS和HTTPS命中。基本的HTTP绑定可以正常工作,但是一旦我尝试添加凭据,我就会不断收到配置错误。我花了几天时间,读了很多文章,但没有成功。

我尝试过

//后面的代码

public partial class Form1 : Form
{
    private ProgramState programState = new ProgramState();

    public Form1()
    {
        InitializeComponent();
    }

    private void btnAcceptAgreement_Click(object sender, EventArgs e)
    {
        programState.UserAcceptedAgreement = true;
    }

    private void btnAcceptLiability_Click(object sender, EventArgs e)
    {
        programState.UserAcknowledgedLiability = true;
    }

    private void btnSubmitSignature_Click(object sender, EventArgs e)
    {
        programState.UserSubmittedSignature = true;
    }

    public void verify()
    {
        if (programState.EverythingAccepted)
        {
            tabControl.SelectedIndex = 2;
        }
        else
        {
            MessageBox.Show("Enter parameters");
        }
    }
}

我不断收到“配置错误”,而没有太多关于我到底在做什么的详细信息。我尝试了不同的实现(wsHttpBindings),但没有成功。

1 个答案:

答案 0 :(得分:0)

尽管WCF4.5宣布我们可以通过在服务工具类中使用静态Configure方法来设置服务,但我建议您在配置文件中配置服务。简洁明了。

  

//我需要显式添加我的证书吗?

您不需要设置证书,因为传输安全模式需要IIS网站绑定模块中的https基地址。
此外,如果要使用证书对客户端进行身份验证,请参考以下链接。
https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/transport-security-with-certificate-authentication
首先应该在服务器和客户端之间建立信任关系,然后客户端应提供服务器信任的证书。由于Makecert命令行已过时,因此建议您使用PowerShell创建自签名证书,并确保客户端和服务器运行时环境高于dotnetframwork4.6.2。
https://docs.microsoft.com/en-us/powershell/module/pkiclient/new-selfsignedcertificate?view=win10-ps
https://github.com/dotnet/docs/issues/12000
随时让我知道是否有什么可以帮助您的。