Aktivierung von SSL/TLS in ASP.Net

Bei der ASP.Net core -Entwicklung sollte man das Motto "Security by default", das man vorgelebt bekommt, auch mitleben. Das heißt, dass man alle HTTP-Zugriffe über HTTPS macht und auch schon während der Entwicklung mit SSL in Kestrel arbeitet. Dazu muss man sich Entwicklerzertifikate zulegen und SSL im Code einschalten.

Probleme bei Zertifikaten

Zertifikat: Fehler beim Ausführen
Irreführende Fehlermeldung
Es kann beim erneuten Ausführen der Anwendung zu Fehlermeldungen kommen. Insbesondere dann, wenn man als Team an einem Repo arbeitet und jemand anders die neue SSL-fähige Version zum ersten Mal startet.
Das Problem ist hier nicht leicht zu erkennen, denn die Fehlermeldung ist irreführend. Sie sagt, dass ein CA-Zertifikat installiert werden soll. Aber daran ist uns beim Ausführen ja eigentlich gar nicht gelegen. Gemeit ist hier, dass das Signierende (CA) Zertifikat unseres Kestrel (Webserver)-Zertifikats nicht vorhanden ist. Im Verborgenen versucht dotnet/VS uns ein Zertifikat "localhost" zu erzeugen, welches wiederum von einem Zertifikat "localhost" unterschrieben ist. Zweitens muss im Zertifikatespeicher "Local Machine\CAs" sein. Daran scheitert es aber. Somit kann dotnet/VS das neue Webserver-Zertifikat nicht unterschreiben und jammert. Damit das wieder geht, kann man folgenden Befehl eingeben.

C:\Projekte\AktuellesProjekt>dotnet dev-certs https --trust
Trusting the HTTPS development certificate was requested. A confirmation prompt will be displayed if the certificate was not previously trusted. Click yes on the prompt to trust the certificate.
The HTTPS developer certificate was generated successfully.

Wenn dieser Befehl notwendig war, erscheint zunächst der Zertifikate-Import, der ein Zertifikat importieren will. Stimmt man dem zu, erscheint dieser Text.
Sollte der Befehl nicht notwendig gewesen sein, passiert nichts. Man wird nur drauf hingewiesn, dass ein gültiges Zertifikat schon existiert.