Die Zertifikate zur Codesignatur von der Zertifizierungsstelle meiner eigenen PKI waren für Excel 2007 nicht zu verwenden. Sie wurden im Auswahldialog nicht angeboten. Die Zertifikate für die Dokument Signatur hingegen funktionierten einwandfrei, sowohl mit Excel als auch mit Word oder Outlook. Nach vielen Versuchen und einiger Recherche bin ich auf die Lösung gestoßen.
Durch einen Bug in Office 2007 ist es nicht möglich Zertifikate mit einem SHA256 Hash Algorithmus zur Signierung von VBA-Projekten zu verwenden. Es werden nur Zertifikate mit SHA1 Hash akzeptiert. Über einen kleinen Eingriff in die Registry kann man aber temporär auch Zertifikate mit einem SHA1 Hash erzeugen.
- Sorgen Sie zunächst dafür, das nur die User, die ein Codesigning Zertifikat für VBA Makros benötigen, das Recht haben Zertifikate zu erhalten, oder Stellen sie sicher, das keine User oder Computer z.B. per Auto-Enrollement Zertifikate beziehen.
- Suchen Sie folgenden Eintrag in der Registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CertSvc\Configuration\<Your CA>\CSP und ändern Sie den Wert CNGHashAlgorithm von SHA256 in SHA1.
- Starten Sie den Zertifikatdienst neu.
- Fordern Sie das neue Codesigning Zertifikat an.
- Machen Sie die Änderung an der Registry wieder Rückgängig, starten Sie den Zertifikatdienst neu und sogen Sie dafür, das User und Computer wieder Zertifikate beziehen können.
Mit dem neuen Zertifikat sollten Sie endlich auch Ihre Excel bzw. Office VBA-Makros signieren können. Wozu hat man den eine Unternehmens-PKI.