2017-10-27 1 views
5

Ich führe die Always-Verschlüsselung in meiner Webanwendung durch, die Daten durch einen WCF-Dienst einfügt, der von einem Fensterdienst gehostet wird. Ich erhalte einen Fehler beim Einfügen der Daten in die verschlüsselte Spalte. Fehler beim Entschlüsseln eines Spaltenverschlüsselungsschlüssels mithilfe des Keystore-Providers: 'MSSQL_CERTIFICATE_STORE'. Die letzten 10 Bytes des verschlüsselten Spaltenverschlüsselungsschlüssels sind: '64 -56-87-3B-EC-2E-11-9D-2A-B5 '. Zertifikat mit Fingerabdruck 'A0D10777759BBD947EEA6F3F5D1A7989514C45F0' nicht im Zertifikatspeicher 'My' im Zertifikatspeicherort 'CurrentUser' gefunden. Überprüfen Sie, ob der Zertifikatspfad in der Definition des Spaltenhauptschlüssels in der Datenbank korrekt ist und das Zertifikat korrekt in den Zertifikatspeicherort/-speicher importiert wurde. Parametername: masterKeyPathImmer Verschlüsselung: Fehler beim Entschlüsseln eines Spaltenverschlüsselungsschlüssels mit dem Schlüsselspeicheranbieter: 'MSSQL_CERTIFICATE_STORE'

+0

@Alpay hast du welche Fehlermeldung vorschlug (Nachweis erbracht, dass Zertifikat versehen mit Daumenabdruck in bereitgestellt Speicher vorhanden ist)? – Evk

+0

@Evk Ich habe den Schlüssel vom aktuellen Benutzer exportiert und ihn in den lokalen Rechner importiert, damit ich das Zertifikat sehen kann, aber es hat nicht geholfen. Fehlermeldung besagt, dass es unter aktuellen Benutzer sein sollte, aber es ist bereits da (sql Server Management Studio legte es standardmäßig) und ich kann entschlüsselte Daten mit SQL Server Management Studio – Alpay

Antwort

2

Ok, ich habe das Problem herausgefunden. Der Fall war genau das: Ich stellte immer verschlüsselt für eine Spalte mit SQL Server Management Studio, die mit meinem eigenen Konto begann. Da ich den SSMS-Prozess mit meinem eigenen Windows-Konto ausführe, platzierte er das Zertifikat im aktuellen Benutzer/Mein Verzeichnis meines Kontos. Da der IIS-Anwendungspool jedoch mit einem anderen Konto ausgeführt wird, konnte das Zertifikat im CurrentUser/My-Verzeichnis meines Kontos nicht gefunden werden.

Ich habe den IIS-Anwendungspool mit demselben Konto neu gestartet, der SSMS gestartet und das Zertifikat erstellt hat, und das Problem ist verschwunden.

Dank

+0

Hallo, können Sie erklären, wie Sie es getan haben? Ich habe das gleiche Problem – tal

+0

@tal Bitte beachten Sie meinen letzten Satz. Wechseln Sie zu IIS-Manager/Anwendungspools und wählen Sie Ihren Pool aus. Unter Erweiterte Einstellungen/Prozessmodell können Sie den Benutzer zu dem Benutzer wechseln, der das Zertifikat wirklich besitzt. – Alpay

+0

Es gibt kein Sicherheitsproblem mit dieser Änderung? , weil ich mit Windows-Authentifizierung verwenden .. – tal

Verwandte Themen