Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zertifikat für VBA Makros

Zertifikat für VBA Makros
21.12.2022 09:02:54
Florian
Hallo Leute,
ich habe eine Excel mit Makros erstellt und diese mit einem Code Zertifikat versehen. Nun ist das Zertifikat abgelaufen. Ein neues habe ich bereits.
Bei einem Kunden erscheint nun aber die Meldung, dass das Zertifikat abgelaufen ist, weil er eine mit dem alten Zertifikat erstellte Datei öffnen will.
Wie kann ich am einfachsten das Zertifikat dem Kunden bereitstellen, dass er auch die alten Dateien nutzen kann, die schon mit Daten befüllt sind?
Oder muss ich das Zertifikat in alle Dateien manuell hinzufügen?
Danke Euch!
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zertifikat für VBA Makros
21.12.2022 09:23:46
mumpel
Hallo!
Dazu musst Du ihm das VBA-Kennwort geben. Dann kann er das Zertifikat tauschen. Allerdings ist es keine gute Idee, anderen Dein Original-Zertifikat zu geben. Das ist eben das Problem bei Zertifikaten.
Gruß, René
AW: Zertifikat für VBA Makros
21.12.2022 10:37:48
Der
Hallo,
idealerweise setzt man beim Codesigning Timestamps ein, so dass dann nur noch geprüft wird, ob das Zertifikat im Zeitpunkt der Signierung gültig war. Mw haben die Zertifizierungsstellen idR einen Timestamp-Server.
Möglicherweise kann man auch das selbe Zertifikat erneuern (verlängern). Siehe z. B. hier:
https://www.sectigostore.com/page/code-signing-certificate-expired-issues/
Ansonsten könntest Du die Datei eben einmal neu signieren (also Excel-Datei vom Kunden zusenden lassen, neu signieren und dann wieder hinschicken)...
Grüße
Michael
Anzeige
AW: Zertifikat für VBA Makros
21.12.2022 12:41:42
Florian
Kann ich das mit dem Timestamp auch nachträglich beim Kunden hinzufügen über ein Add-in oder ähnliches? Problem ist, dass es mehrere hundert Dateien betrifft :D
AW: Zertifikat für VBA Makros
21.12.2022 11:01:41
Yal
Hallo zusammen,
Bitte die Unterschied zwischen Zertifikat und Signature beachten: im Code befindet sich lediglich die Signature. Diese ist Dokument-spezifisch.
Der Kunde muss auf jeden Rechner, wo diese Makro laufen soll, dein Zertifikat importieren. Damit wird die Signature im Makro validiert.
Aber es muss in dem Fall eine Zertifikatsverlängerung sein, der das abgelaufene Zertifikat berücksichtigt.
VG
Yal
Anzeige
AW: Zertifikat für VBA Makros
21.12.2022 12:40:25
Florian
Kann er das importieren ohne, dass er meinen Private Key usw, benötig? Ich finde dazu leider keine genauen Infos.
AW: Zertifikat für VBA Makros
21.12.2022 13:15:22
Yal
Hallo Florian,
ein minimales Wissen über das Thematik solltest Du dir schon eineignen, wäre es grundsätzlich um abzuwegen, was komplett fremde Leute im Internet für Märchen erzählen. Gute IT-Sicherheit ist immer eine Vorstufe zur Paranoia. Ich bin auch selber kein Spezialist und erteile nur halbwissen.
Aber: "Private Key ist private!". Punkt.
Hochstens wird dein Public Key dem Kunden bereitgestellt. Aber eher eine zertifizierte Public Key ("Zertifikat"): dadurch wird von einer Zertifizierungsinstanz bestätigt, dass diese Public Key von Dir stammt und nicht von einem dritten. Daher kauft man solche Zertif bei einer vertraulichen Zertifizierungsinstanz und nicht auf einem Flohmarkt.
Der Krux ist, dass der Private Key nicht vom Public Key abgeleitet werden kann und auch nicht umgekehrt.
Aber: was mit Public Key verschlüsselt wurde, kann nur mit Private Key entschlüsselt werden UND umgekehrt. Somit wird die Code-Signature mit deinem Public Key (bzw. Zerifikat) entschlüsselt, was beweist, dass diese mit deinem Private Key erzeugt wurde. Also zweifelfrei von Dir, weil niemanden Zugang zu deinem Private Key hat (Remember: "Private Key is private").
Wie eine Zertifikatsverlängerung funktioniert ist mir nicht klar. Da solche Verlängerung nur vom demselben Herausgeber stammen kann (niemand beglaubigt gern seine eigenen Konkurrenten), ist es schon beim ersten Kauf zu prüfen, welche Folgekosten entstehen können.
Schlimmstenfalls musst Du den alten Code erneut signieren.
VG
Yal
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zertifikat für VBA Makros


Schritt-für-Schritt-Anleitung

Um ein Excel Makro zu signieren, benötigst Du ein gültiges VBA Zertifikat. Befolge die folgenden Schritte:

  1. VBA-Zertifikat erstellen: Wenn Du noch kein Zertifikat hast, kannst Du eines bei einer vertrauenswürdigen Zertifizierungsstelle wie SectigoStore erwerben.

  2. Zertifikat importieren: Der Kunde muss das neue Zertifikat auf seinem Computer importieren. Dies geschieht in der Regel über die Windows-Zertifikatverwaltung.

  3. Makros signieren:

    • Öffne die Excel-Datei mit den Makros.
    • Gehe zu Entwicklertools > Makros.
    • Wähle das Makro, das Du signieren möchtest, und klicke auf Bearbeiten.
    • Im VBA-Editor gehe zu Extras > Digitale Signatur.
    • Wähle Dein Zertifikat aus und klicke auf OK.
  4. Datei speichern: Speichere die Excel-Datei. Damit ist das Makro signiert.


Häufige Fehler und Lösungen

  • Fehler: Zertifikat abgelaufen

    • Lösung: Bitte den Kunden, das neue Zertifikat zu importieren und die alten Dateien neu zu signieren. Ein Timestamp kann helfen, zukünftige Probleme zu vermeiden.
  • Fehler: Makro kann nicht ausgeführt werden

    • Lösung: Überprüfe, ob das neue Zertifikat korrekt importiert wurde und ob es im Trust Center von Excel als vertrauenswürdig eingestuft ist.

Alternative Methoden

Falls Du das Excel Makro nicht manuell signieren möchtest, gibt es auch alternative Methoden:

  • Add-Ins nutzen: Es gibt Add-Ins, die Dir helfen können, Makros automatisch zu signieren oder Zertifikate zu verwalten. Diese können insbesondere bei einer großen Anzahl von Dateien hilfreich sein.

  • Batch-Signierung: Wenn es viele Dateien betrifft, kannst Du Skripte verwenden, um den Signierungsprozess zu automatisieren.


Praktische Beispiele

  1. Zertifikat erstellen:

    Sub CreateCertificate()
       ' Code zum Erstellen eines Zertifikats
    End Sub
  2. Makro signieren:

    Sub SignMacro()
       Dim cert As Object
       Set cert = Application.SignatureProvider
       cert.Sign "DeinMakro"
    End Sub

Damit kannst Du den Prozess des Excel Makros signierens veranschaulichen.


Tipps für Profis

  • Verwende Timestamps: Signiere Deine Makros mit einem Timestamp, um zu gewährleisten, dass sie auch nach Ablauf des Zertifikats weiterhin funktionieren.

  • Zertifikatshandhabung: Halte Dein Private Key geheim und teile nur den Public Key oder das Zertifikat selbst. Das schützt Deine Makros vor unbefugtem Zugriff.

  • Regelmäßige Überprüfung: Überprüfe regelmäßig den Status Deiner Zertifikate, um sicherzustellen, dass sie immer gültig sind.


FAQ: Häufige Fragen

1. Wie kann ich ein Excel Makro signieren?
Du kannst ein Makro signieren, indem Du es in Excel öffnest, zum VBA-Editor gehst, das Makro auswählst und über Extras > Digitale Signatur Dein Zertifikat auswählst.

2. Was passiert, wenn das Zertifikat abläuft?
Wenn das Zertifikat abläuft, können die signierten Makros nicht mehr ausgeführt werden, bis das Zertifikat erneuert und die Dateien neu signiert werden.

3. Kann ich das Zertifikat nachträglich hinzufügen?
Ja, aber der Kunde muss das Zertifikat importieren, und die Dateien müssen neu signiert werden, um die neue Signatur zu akzeptieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige