Installieren von Root CA Cert über Code in Win32

8

Wir haben gerade eine neue Remote-Access-Lösung mit dem TS Gateway von Microsoft eingerichtet, die im Namen des Endbenutzers einige knifflige Schritte erfordert, damit es funktioniert (Installation unseres Root-CA-Certs, Anforderung des RDP 6.1 Clients) usw.).

Um diesen Setup-Prozess so einfach wie möglich zu machen (viele dieser Benutzer sind nicht technisch interessiert), suche ich nach einem Programm, um all diese Aufgaben automatisch auszuführen. Ich habe die meiste Arbeit, aber ich bin nicht ganz sicher, wie man das Wurzel-CA-Zertifikat in den Windows-Zertifikatspeicher importiert.

Da dies potenziell auf einer Vielzahl von Computern mit unterschiedlichen Patches und Updates ausgeführt werden kann, löse ich .NET und alles, was nicht nativ ist, gut ab - das Tool sollte einfach ohne den Benutzer ausgeführt werden etwas extra installieren müssen (naja, ich werde Windows XP, keine Service Packs sagen, ist die minimal erforderliche Version von Windows). Wenn ich das sage, macht es mir nichts aus, etwas Drittes zu verwenden, wenn es mit dem Tool gebündelt werden kann, solange es nicht riesig ist und keine interaktiven Schritte einführt. Im Idealfall wäre etwas in der Windows-API am besten, aber ich kann nichts Relevantes finden.

Gegenwärtig ist das Tool eine C ++ - Anwendung, also macht es mir nichts aus, wenn es sich um ziemlich low-level Zeug handelt.

    
CapBBeard 18.03.2009, 01:50
quelle

4 Antworten

7

Zuerst müssen Sie den Stammzertifikatspeicher öffnen ...

%Vor%

Fügen Sie das Zertifikat dann mithilfe einer der CertAdd-Funktionen hinzu, z. B. CertAddEncodedCertificateToStore.

%Vor%

pCertData und cbCertData würden wahrscheinlich auf die Zertifikatsdaten zeigen, die Sie aus einer Datei lesen (nicht sicher, ob das Zertifikat in einer Datei enthalten ist oder wie Sie es in Ihre Anwendung aufnehmen).

Schließen Sie dann den Laden mit ...

%Vor%

HINWEIS: Wenn dieser Code als Benutzer ausgeführt wird, wird das Zertifikat im Stammspeicher des Benutzers und nicht auf dem Computer installiert. Es führt auch zu einem Warndialog, den der Benutzer verstehen muss, und wählt "Ja", um den Import zu autorisieren. Wenn Ihr Setup-Programm diesen Code in einem Systemkonto ausführen kann, wirkt sich der Import auf den Stammspeicher des Computers aus, und es wird kein Warndialog angezeigt.

    
Murray 18.03.2009, 02:07
quelle
2

Sie können auch CertAddEncodedCertificateToSystemStore

auschecken     
r4w8173 05.07.2012 17:56
quelle
1

Haben Sie sich CertAddEncodedCertificateToStore angesehen?

    
BobbyShaftoe 18.03.2009 01:57
quelle
0

Mehrere C ++ - Beispiele im Windows SDK von MSDN

Kopieren Sie sie einfach.

    
Brallys 18.03.2009 14:16
quelle

Tags und Links