Freigeben über


Signieren von Anwendungs- und Bereitstellungsmanifesten

Wenn Sie eine Anwendung mithilfe der ClickOnce-Bereitstellung veröffentlichen möchten, müssen die Anwendungs- und Bereitstellungsmanifeste mit einem öffentlichen/privaten Schlüsselpaar signiert und mithilfe der Authenticode-Technologie 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 früher verwenden. Wenn Sie .NET 5 oder höher verwenden, führen Sie die Schritte unter Bereitstellen einer .NET Windows-Desktopanwendung mit ClickOnce aus.

Das Signieren der ClickOnce-Manifeste ist für .exe-basierte Anwendungen optional. Weitere Informationen finden Sie im Abschnitt "Generieren nicht signierter Manifeste" dieses Dokuments.

Informationen zum Erstellen von Schlüsseldateien finden Sie unter How to: Create a public-private key pair.

Informationen zum Signieren von Assemblys und Anwendungsmanifesten finden Sie unter Verwalten der Assembly- und Manifestsignierung.

Hinweis

Visual Studio unterstützt nur Personal Information Exchange (PFX)-Schlüsseldateien, die die Erweiterung .pfx haben. Sie können jedoch andere Arten von Zertifikaten aus dem Windows-Zertifikatspeicher des aktuellen Benutzers auswählen, indem Sie auf der Signaturseite der Projekteigenschaften auf "Aus dem Store auswählen" klicken.

Signieren mit einem Zertifikat

Um diese Methode zu verwenden, müssen Sie über ein Zertifikat verfügen, das von einer Zertifizierungsstelle (Ca) signiert ist. Zertifikate werden von Drittanbietern für Zertifizierungsdienstanbieter oder von autorisierten Organisationen innerhalb eines Unternehmens ausgestellt.

  1. Wechseln Sie zum Projekteigenschaftenfenster (klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie "Eigenschaften" aus). Aktivieren Sie auf der Registerkarte "Signieren" das Kontrollkästchen "ClickOnce-Manifeste signieren".

  2. Klicken Sie auf die Schaltfläche " Aus Store auswählen ".

    Das Dialogfeld " Zertifikat auswählen " wird angezeigt und zeigt den Inhalt des Windows-Zertifikatspeichers an.

    Tipp

    Wenn Sie hier klicken , um Zertifikateigenschaften anzuzeigen, wird das Dialogfeld " Zertifikatdetails " angezeigt. Dieses Dialogfeld enthält ausführliche Informationen über das Zertifikat und weitere Optionen. Klicken Sie auf Zertifikate , um zusätzliche Hilfeinformationen anzuzeigen.

  3. Wählen Sie das Zertifikat aus, das Sie zum Signieren der Manifeste verwenden möchten.

    Tipp

    Wenn im Speicher keine Zertifikate vorhanden sind, können Sie sich weiterhin mit einem Testzertifikat signieren.

  4. Darüber hinaus können Sie die Adresse eines Zeitstempelservers im Textfeld "Timestamp-Server-URL " angeben. Dies ist ein Server, der einen Zeitstempel bereitstellt, der angibt, wann das Manifest signiert wurde. Es wird in der Regel von demselben Drittanbieter bereitgestellt, der Zertifikate anbietet, die von einer Zertifizierungsstelle signiert sind.

Signieren mit einer vorhandenen Schlüsseldatei

  1. Aktivieren Sie auf der Signaturseite das Kontrollkästchen ClickOnce-Manifeste signieren .

  2. Klicken Sie auf die Schaltfläche " Aus Datei auswählen ".

    Das Dialogfeld "Datei auswählen " wird angezeigt.

  3. Navigieren Sie im Dialogfeld "Datei auswählen " zum Speicherort der schlüsseldatei (PFX), die Sie verwenden möchten, und klicken Sie dann auf "Öffnen".

    Hinweis

    Diese Option unterstützt nur Dateien mit der Erweiterung PFX . Wenn Sie über eine Schlüsseldatei oder ein Zertifikat in einem anderen Format verfügen, speichern Sie sie im Windows-Zertifikatspeicher, und wählen Sie das Zertifikat aus, das im vorherigen Verfahren beschrieben wird. Der Zweck des ausgewählten Zertifikats sollte die Codesignatur enthalten.

    Das Dialogfeld Kennwort eingeben, um die Datei zu öffnen, wird angezeigt. (Wenn die PFX-Datei bereits in Ihrem Windows-Zertifikatspeicher gespeichert ist oder nicht kennwortgeschützt ist, werden Sie nicht aufgefordert, ein Kennwort einzugeben.)

  4. Geben Sie das Kennwort ein, um auf die Schlüsseldatei zuzugreifen, und wählen Sie dann die EINGABETASTE aus.

  5. Wählen Sie "Weitere Details" 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 ist ein Beispiel dafür, was der Benutzer sieht, wenn die ClickOnce-Anwendung installiert wird:

    Screenshot des Zertifikats, das während der Installation der Anwendung angezeigt wird.

Hinweis

Die PFX-Datei kann keine Zertifikatsketteninformationen enthalten. Wenn dies der Fall ist, tritt der folgende Importfehler auf: Das Zertifikat und der private Schlüssel für die Entschlüsselung können nicht gefunden werden. Um die Zertifikatketteninformationen zu entfernen, können Sie Certmgr.msc verwenden und die Option zumEinschließen aller Zertifikate beim Exportieren der Datei *.pfx deaktivieren.

Signieren mit einem Testzertifikat

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 den Benutzern hilft.

  1. Aktivieren Sie auf der Signaturseite das Kontrollkästchen ClickOnce-Manifeste signieren .

  2. Zum Erstellen eines neuen Zertifikats zum Testen klicken Sie auf die Schaltfläche " Testzertifikat erstellen ".

  3. 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 sind auf .NET 2.0 ausgerichtet.

Generieren nicht signierter Manifeste

Das Signieren der ClickOnce-Manifeste ist für .exe-basierte Anwendungen optional. Die folgenden Verfahren zeigen, wie nicht signierte ClickOnce-Manifeste generiert werden.

Von Bedeutung

Nicht signierte Manifeste können die Entwicklung und das Testen Ihrer Anwendung vereinfachen. Nicht signierte Manifeste führen jedoch zu erheblichen Sicherheitsrisiken in einer Produktionsumgebung. Erwägen Sie nur die Verwendung von nicht signierten Manifesten, wenn Ihre ClickOnce-Anwendung auf Computern innerhalb eines Intranets ausgeführt wird, das vollständig vom Internet oder anderen Quellen bösartigen Codes isoliert ist.

ClickOnce generiert standardmäßig automatisch signierte Manifeste, es sei denn, eine oder mehrere Dateien werden ausdrücklich vom generierten Hash ausgeschlossen. Anders ausgedrückt: Die Veröffentlichung der Anwendung führt zu signierten Manifesten, wenn alle Dateien im Hash enthalten sind, auch wenn das Kontrollkästchen ClickOnce-Manifeste signieren deaktiviert ist.

So generieren Sie nicht signierte Manifeste und fügen alle Dateien in den generierten Hash ein

Um nicht signierte Manifeste zu generieren, die alle Dateien im Hash enthalten, müssen Sie die Anwendung zuerst zusammen mit signierten Manifesten veröffentlichen. Signieren Sie daher zuerst die ClickOnce-Manifeste, indem Sie einem der vorherigen Verfahren folgen und dann die Anwendung veröffentlichen.

  1. Deaktivieren Sie auf der Registerkarte Signieren das Kontrollkästchen Signieren der ClickOnce-Manifeste.

  2. Setzen Sie auf der Registerkarte "Veröffentlichen" die Veröffentlichungsversion zurück, sodass nur eine Version Ihrer Anwendung verfügbar ist. Deaktivieren Sie das Kontrollkästchen für die automatische Inkrementierung der Version bei jeder Veröffentlichung. Standardmäßig erhöht Visual Studio automatisch die Revisionsnummer der Veröffentlichungsversion jedes Mal, wenn Sie eine Anwendung veröffentlichen. Weitere Informationen finden Sie unter So setzen Sie die ClickOnce-Veröffentlichungsversion.

  3. Veröffentlichen Sie die Anwendung. Visual Studio teilt Ihnen mit, dass die Anwendung mit einem anderen Schlüssel als der vorhandenen Anwendung auf dem Server signiert wurde, und fragt Sie, ob Sie sie überschreiben möchten. Wählen Sie Jaaus.

So generieren Sie nicht signierte Manifeste, und schließen Sie eine oder mehrere Dateien aus dem generierten Hash aus

  1. Deaktivieren Sie auf der Signaturseite das Kontrollkästchen Signatur von ClickOnce-Manifesten.

  2. Wählen Sie auf der Registerkarte " Veröffentlichen " die Schaltfläche "Anwendungsdateien " aus, um das Dialogfeld "Anwendungsdateien " zu öffnen, und legen Sie den Hash auf "Ausschließen " für die Dateien fest, die Sie aus dem generierten Hash ausschließen möchten.

    Hinweis

    Wenn Sie eine Datei aus dem Hash ausschließen, wird ClickOnce so konfiguriert, dass die automatische Signierung der Manifeste deaktiviert wird. Daher müssen Sie nicht zuerst mit signierten Manifesten veröffentlichen, wie im vorherigen Verfahren gezeigt.

  3. Veröffentlichen Sie die Anwendung.