繁体   English   中英

没有证书中的私钥的证书身份验证和消息安全性

[英]Certificate Authentication and Message Security without private key in the certificate

我在WCF(客户端)中的证书有问题。

我已收到三张证书:

  • 远程服务器的SSL证书
  • 客户端证书(用于用户身份验证)
  • 根证书

注意:没有证书具有私钥


在WCF中,可以使用证书身份验证。 这是我的样本:

var sslBinding = new BasicHttpBinding(BasicHttpSecurityMode.TransportWithMessageCredential);
sslBinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.Certificate;
sslBinding.MessageEncoding = WSMessageEncoding.Mtom;

var certificate= new X509Certificate2(_certificatesFullPath, _certificatePassword, X509KeyStorageFlags.MachineKeySet);
var userCertificate = new X509Certificate2(_userCertificate, "", X509KeyStorageFlags.MachineKeySet);

var identity = new X509CertificateEndpointIdentity(userCertificate);
var endPoint = new EndpointAddress(new Uri(_endPointURI), identity);

using (Test.SdIRiceviNotificaClient client = new Test.SdIRiceviNotificaClient( sslBinding, endPoint))
{
        client.ClientCredentials.ClientCertificate.Certificate = certificate;


        client.Open();

        var result = await client.NotificaEsitoAsync(new Test.NotificaEsitoRequest(idSdI.ToString(), fileName, XmlUtils.GetXmlBytes(new NotificaEsitoCommittente())));

        client.Close();
}

我的问题是,现在我收到此异常:

X.509证书中不存在私钥。

我知道没有证书具有私钥,并且我不能要求其他证书。


我拥有的唯一信息:所有证书都应在p12容器中使用。
我只是创建一个p12文件存在问题(没有私钥=>好的,就有可能带有“ -nokeys”参数)。

我已经做到了:

openssl x509 -in CAEntratetest.cer -outform PEM -out CAEntratetest.pem
openssl x509 -in SDI-xxxxxxxxxxx.cer -inform DER -out SDI-xxxxxxxxxxx.pem -outform PEM
openssl x509 -in testservizi.fatturapa.it.cer -inform DER -out testservizi.fatturapa.it.pem -outform PEM

cat CAEntratetest.pem SDI-xxxxxxxxxxx.pem testservizi.fatturapa.it.pem > sum.pem

要创建p12文件,我需要一个私钥:

openssl pkcs12 -export -in sum.pem -inkey private.key -out output.p12

如果我创建一个新密钥=>,它将不起作用(没有证书与私钥匹配)

是否可以使用没有私钥的证书?

不可以,没有私钥您不能使用证书进行身份验证。

基于X.509的身份验证机制的安全性依赖于公共密钥密码术,其中会生成公共密钥和私有密钥。 只有私有部分应该保密。

您拥有的是公钥。 用您的私钥签名是什么证明您“拥有”公钥以及如何进行身份验证。

还要注意:您不能简单地为公共密钥生成新的私有密钥。 钥匙是一对。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM