Włączenie protokołu https.

Jako że aplikacja będzie przesyłała zapisane w bazie poświadczenia z serwera do klienta, do zabezpieczenia komunikacji użyję protokołu https. W tym wpisie pokaże jak włączyć ten protokół w ASP.NET Core 1.0.

Najprostszym sposobem na włączenie https-a jest udekorowanie akcji kontrolera atrybutem [RequireHttps] która własnie wymusza stosowanie https-a. Jednak ja chciałem wymusić stosowanie tego protokołu globalnie – mógłbym w przyszłości zapomnieć zastosować ten atrybut na jakiejś metodzie. Trochę pogrzebałem i znalazłem na (jakże by inaczej) Stack Overflow rozwiązanie.
W klasie Startup w metodzie ConfigureServices dodajemy kod:

services.Configure<MvcOptions>(options =>
{
  options.Filters.Add(new RequireHttpsAttribute());
});

Odpalamy aplikację… i pokazuję się w Firefoxie piękny błąd ERR_SSL_PROTOCOL_ERROR. Chwilę grzebania, no i oczywiście, nie włączyłem SSL na serwerze IIS Express: należy przejść do properties projektu –> Debug –> i zaznaczyć Enable SSL w sekcji Web Server Settings.

Uruchamiam drugi raz i przeglądarka informuje mnie o nieprawidłowych certyfikatach:
wrongCert
Ale już jesteśmy w domu, po dodaniu wyjątku bezpieczeństwa ukazuje się nasza strona.

Dodanie certyfikatu do zaufanych certyfikatów

Aby pozbyć się informacji o złym certyfikacie należy wykonać kroki z poniższego linku (rozwiązanie nr. 2): w skrócie należy wyeksportować certyfikat localhost z repozytorium Personal i zaimportować do repozytorium Trusted Root Certification Authorities. Ten sposób nie działa niestety z Firefoxem (pewnie korzysta z własnego repozytorium).

Odzyskiwanie certfikatu

Przy okazji napomknę jak odzyskać usunięty certyfikat serwera IIS Express, bo niestety przy okazji „sam się usunął”. Naprawa jest bardzo prosta, należy wejść w Programy i Funkcje w Panelu sterowania, kliknąć PPM na IIS Expres, i wybrać Napraw.
issFix

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *