Signieren von Anwendungs- und Bereitstellungsmanifesten
Wenn Sie eine Anwendung mit der ClickOnce-Bereitstellung veröffentlichen möchten, müssen Anwendungs- und Bereitstellungsmanifeste mit einem öffentlichen/privaten Schlüsselpaar und unter Verwendung von Authenticode signiert werden. Sie können die Manifeste mit einem Zertifikat aus dem Windows-Zertifikatspeicher oder einer Schlüsseldatei signieren.
Die Informationen in diesem Artikel gelten nur, wenn Sie .NET Framework 4.8.1 oder eine frühere Version verwenden. Wenn Sie .NET 5 oder höher verwenden, befolgen Sie die Schritte unter Bereitstellen einer .NET-Desktopanwendung unter Windows mithilfe von ClickOnce.
Weitere Informationen über die ClickOnce-Bereitstellung finden Sie unter ClickOnce security and deployment (ClickOnce-Sicherheit und Bereitstellung).
Das Signieren der ClickOnce-Manifeste ist für EXE-basierte Anwendungen optional. Weitere Informationen finden Sie im Abschnitt „Generieren von unsignierten Manifesten“ in diesem Dokument.
Weitere Informationen zum Erstellen von Schlüsseldateien finden Sie unter Vorgehensweise: Erstellen eines öffentlichen bzw. privaten Schlüsselpaars.
Hinweis
Visual Studio unterstützt nur PFX-Schlüsseldateien (Personal Information Exchange) mit der Erweiterung .pfx. Sie können jedoch andere Typen von Zertifikaten aus dem Windows-Zertifikatspeicher des aktuellen Benutzers auswählen, indem Sie auf der Seite Signierung der Projekteigenschaften auf Aus Speicher auswählen klicken.
Signieren mithilfe eines Zertifikats
Zur Verwendung dieser Methode benötigen Sie ein von einer Zertifizierungsstelle (CA) signiertes Zertifikat. Zertifikate werden von externen Zertifizierungsdienstanbietern oder von autorisierten Organisationen innerhalb eines Unternehmens ausgestellt.
Navigieren Sie zum Fenster „Projekteigenschaften“. Klicken Sie hierzu im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie Eigenschaften aus. Aktivieren Sie auf der Registerkarte Signierung das Kontrollkästchen ClickOnce-Manifeste signieren.
Klicken Sie auf die Schaltfläche Aus Speicher auswählen.
Das Dialogfeld Zertifikat auswählen wird mit dem Inhalt des Windows-Zertifikatspeichers angezeigt.
Tipp
Wenn Sie auf Klicken Sie hier, um Zertifikateigenschaften anzuzeigen klicken, wird das Dialogfeld Zertifikatdetails angezeigt. Dieses Dialogfeld enthält ausführliche Informationen zu dem Zertifikat sowie zusätzliche Optionen. Klicken Sie auf Zertifikate, um weitere Hilfeinformationen anzuzeigen.
Wählen Sie das Zertifikat aus, mit dem Sie die Manifeste signieren möchten.
Tipp
Wenn keine Zertifikate im Speicher vorhanden sind, können Sie die Manifeste mit einem Testzertifikat signieren.
Zudem können Sie im Textfeld Timestampserver-URL die Adresse eines Timestampservers angeben. Dabei handelt es sich um einen Server, der einen Timestamp bereitstellt, mit dem angegeben wird, zu welchem Zeitpunkt das Manifest signiert wurde. Die Bereitstellung erfolgt in der Regel über denselben Drittanbieter, der auch die von einer Zertifizierungsstelle signierten Zertifikate anbietet.
Signieren mithilfe einer vorhandenen Schlüsseldatei
Aktivieren Sie auf der Seite Signierung das Kontrollkästchen ClickOnce-Manifeste signieren.
Klicken Sie auf die Schaltfläche Aus Datei wählen.
Das Dialogfeld Datei auswählen wird angezeigt.
Suchen Sie im Dialogfeld Datei auswählen den Speicherort der zu verwendenden Schlüsseldatei (PFX-Datei), und klicken Sie dann auf Öffnen.
Hinweis
Diese Option kann nur bei Dateien mit der Erweiterung .pfx verwendet werden. Speichern Sie Schlüsseldateien oder Zertifikate in einem anderen Format im Windows-Zertifikatspeicher, und wählen Sie das Zertifikat aus, das im vorhergehenden Verfahren beschrieben wurde. Zu den Funktionen des ausgewählten Zertifikats sollten auch Codesignaturen gehören.
Das Dialogfeld Kennwort zum Öffnen der Datei eingeben wird angezeigt. (Wenn die PFX-Datei bereits im Windows-Zertifikatspeicher gespeichert oder nicht kennwortgeschützt ist, werden Sie nicht zur Eingabe eines Kennworts aufgefordert.)
Geben Sie das Kennwort für den Zugriff auf die Schlüsseldatei ein, und drücken Sie dann die EINGABETASTE.
Wählen Sie Weitere Informationen… aus, um die Eigenschaften des Zertifikats anzuzeigen. ClickOnce zeigt den Wert des Felds Betreff als Herausgeber an, wenn das Zertifikat angezeigt wird, wenn ein Benutzer Ihre Anwendung installiert. Hier sehen Sie ein Beispiel dafür, was der Benutzer sieht, wenn die ClickOnce-Anwendung installiert ist:
Hinweis
Die PFX-Datei kann keine Informationen zur Zertifikatsverkettung enthalten. Wenn dies allerdings der Fall ist, tritt der folgende Importfehler auf: Das Zertifikat und der private Schlüssel für die Entschlüsselung wurden nicht gefunden. Um die Informationen zur Zertifikatverkettung zu entfernen, können Sie Certmgr.msc verwenden und die Option Alle Zertifikate einbeziehen beim Exportieren der PFX-Datei deaktivieren.
Signieren mithilfe eines Testzertifikats
Testzertifikate werden nicht von einer Zertifizierungsstelle signiert und sollten nur zu Testzwecken verwendet werden. Ausführliche Informationen zu Testzertifikaten finden Sie unter Wie die Verwendung von Zertifizierungsstellen Benutzern hilft.
Aktivieren Sie auf der Seite Signierung das Kontrollkästchen ClickOnce-Manifeste signieren.
Klicken Sie zum Erstellen eines neuen Zertifikats zum Testen auf die Schaltfläche Testzertifikat erstellen.
Geben Sie im Dialogfeld Testzertifikat erstellen ein Kennwort ein, um das Testzertifikat zu schützen.
Hinweis
Achten Sie darauf, sha256RSA als Signaturalgorithmus auszuwählen, es sei denn, Sie zielen auf .NET 2.0 ab.
Generieren von unsignierten Manifesten
Das Signieren der ClickOnce-Manifeste ist für .exe
-basierte Anwendungen optional. In den folgenden Anleitungen wird dargestellt, wie unsignierte ClickOnce-Manifeste generiert werden.
Wichtig
Unsignierte Manifeste können die Entwicklung und das Testen der Anwendung vereinfachen. Unsignierte Manifeste führen in einer Produktionsumgebung jedoch zu beträchtlichen Sicherheitsrisiken. Ziehen Sie die Verwendung unsignierter Manifeste nur in Betracht, wenn die ClickOnce-Anwendung auf Computern in einem Intranet ausgeführt wird, das vollständig vom Internet oder anderen Quellen bösartigen Codes abgeschirmt ist.
Standardmäßig werden durch ClickOnce automatisch signierte Manifeste generiert, sofern nicht mindestens eine Datei ausdrücklich aus dem generierten Hash ausgeschlossen wird. Wenn alle Dateien im Hash eingeschlossen sind, werden beim Veröffentlichen der Anwendung somit signierte Manifeste erstellt. Dies gilt auch, wenn das Kontrollkästchen ClickOnce-Manifeste signieren deaktiviert ist.
So generieren Sie nicht signierte Manifeste und schließen alle Dateien in den generierten Hash ein
Zum Generieren nicht signierter Manifeste, die alle Dateien im Hash enthalten, müssen Sie die Anwendung zunächst mit signierten Manifesten veröffentlichen. Signieren Sie daher zunächst die ClickOnce-Manifeste, indem Sie eines der oben aufgeführten Verfahren ausführen, und veröffentlichen Sie dann die Anwendung.
Deaktivieren Sie auf der Seite Signierung das Kontrollkästchen ClickOnce-Manifeste signieren.
Setzen Sie auf der Registerkarte Veröffentlichen die Veröffentlichungsversion zurück, sodass nur noch eine Version Ihrer Anwendung verfügbar ist. Deaktivieren Sie das Kontrollkästchen Version bei jeder Veröffentlichung automatisch erhöhen. Standardmäßig wird die Revisionsnummer der Veröffentlichungsversion von Visual Studio bei jedem Veröffentlichen einer Anwendung automatisch erhöht. Weitere Informationen finden Sie unter Vorgehensweise: Festlegen der ClickOnce-Veröffentlichungsversion.
Veröffentlichen Sie die Anwendung. Visual Studio teilt Ihnen mit, dass die Anwendung mit einem anderen Schlüssel signiert wurde als die vorhandene Anwendung auf dem Server, und fragt nach, ob diese überschrieben werden soll. Klicken Sie auf Ja.
So generieren Sie nicht signierte Manifeste und schließen eine oder mehrere Dateien aus dem generierten Hash aus
Deaktivieren Sie auf der Seite Signierung das Kontrollkästchen ClickOnce-Manifeste signieren.
Wählen Sie auf der Registerkarte Veröffentlichen die Schaltfläche Anwendungsdateien, um das Dialogfeld Anwendungsdateien zu öffnen. Legen Sie den Wert Hash für alle Dateien, die Sie aus dem generierten Hash ausschließen möchten, auf Ausschließen fest.
Hinweis
Durch Ausschließen einer Datei aus dem Hash wird ClickOnce so konfiguriert, dass das automatische Signieren von Manifesten deaktiviert wird. Daher muss nicht zuerst mit signierten Manifesten veröffentlicht werden, wie es im vorhergehenden Verfahren der Fall war.
Veröffentlichen Sie die Anwendung.