簡體   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