Konfiguracja IIS
Dokument zawiera opis konfiguracji serwera usług internetowych - Internet Information Services (IIS). Z IIS korzystamy m.in. w celu uruchomienia aplikacji eAdmin, eWizja oraz ePodatki.
- Uwaga!
- Zrzuty okien i adresy ścieżki przygotowano na podstawie systemu Windows 10,
- Filmy prezentujące konfigurowanie IIS znajdziemy na portalu YouTube.
Instalacja IIS
Przechodzimy do okna Programy i funkcje poprzez wciśnięcie kombinacji klawiszy Windows + R, w wyświetlonym oknie wpisujemy appwiz.cpl i zatwierdzamy klikając OK lub wciskając Enter.
W oknie Programy i funkcje wybieramy opcję Włącz lub wyłącz funkcje systemu Windows.
Odnajdujemy na liście Internetowe usługi informacyjne i zaznaczamy zgodnie z poniższymi zrzutami ekranu, a następnie zatwierdzamy klikając na przycisk OK.
Po kilku chwilach usługa powinna zostać pomyślnie zainstalowana, co system Windows potwierdzi wyświetlając stosowny komunikat.
Status usługi
Po zastosowaniu zmian, usługa IIS powinna zostać automatycznie uruchomiona. Status usługi sprawdzimy naciskając kombinację klawiszy Windows + R, w wyświetlonym oknie wpisujemy services.msc i zatwierdzamy klikając OK lub wciskając Enter. Uruchomione zostanie okno Usługi, na liście szukamy pozycji Usługa publikowania w sieci WWW. Powinna działać, wycinek poniżej.
Menedżer internetowych usług informacyjnych (IIS)
Naciskając kombinację klawiszy Windows + R, w wyświetlonym oknie wpisujemy inetmgr i zatwierdzamy klikając OK lub wciskając Enter. Uruchomiony zostanie Menedżer internetowych usług informacyjnych, czyli okno służące do zarządzania usługą IIS.
Dodawanie nowej witryny
W celu utworzenia nowej witryny w IIS przechodzimy do Menedżera internetowych usług informacyjnych (IIS) > w sekcji Połączenia (lewa strona) klikamy PPM > wybieramy Dodaj witrynę sieci Web.
Wykonujemy kolejno kroki:
- Pole Nazwa witryny uzupełniamy dowolną nazwą, np. INFO-SYSTEM.
- Pula aplikacja - wybieramy pulę aplikacji, która ma wersję środowiska .Net CLR: 4.0 oraz Tryb potokowy: Zintegrowany. Możemy utworzyć pulę aplikacji o takich parametrach i nazwać ją INFO-SYSTEM.
- Ścieżka fizyczna to lokalizacja folderu wspólnego, w którym będą znajdowały się aplikacje INFO-SYSTEM.
- Wybieramy typ połączenia HTTP lub HTTPS (jeśli aplikacja ma być dostępna poza siecią lokalną zalecamy wybór protokołu HTTPS, aby dowiedzieć się więcej klikamy tutaj).
- Zatwierdzamy klikając na przycisk OK.
HTTPS/SSL
- Uwaga! Jeśli chcemy, aby nasza aplikacja była dostępna poza siecią lokalną zalecamy stosowanie protokołu SSL.
Certyfikaty serwera
W Menedżerze internetowych usług informacyjnych znajdujemy i wchodzimy w opcję Certyfikaty serwera. Z prawej strony okna, w sekcji Akcje dostępne są opcje importowania oraz tworzenia certyfikatów.
Dodawanie witryny
Podczas dodawania nowej witryny typ połączenia ustawiamy jako HTTPS, a następnie wybieramy wcześniej dodany certyfikat SSL i zatwierdzamy klikając na przycisk OK.
Ustawienia protokołu SSL
W Menedżerze internetowych usług informacyjnych wybieramy wcześniej utworzoną witrynę, wchodzimy w pozycję Ustawienia protokołu SSL, a następnie zaznaczamy opcję Wymagaj protokołu SSL oraz wybieramy Ignoruj. Dzięki takiemu ustawieniu dostęp do naszej aplikacji będzie możliwy tylko i wyłącznie poprzez protokół SSL.
- Uwaga! Jeśli nasz certyfikat SSL nie został wystawiony przez zaufanego wystawce niezbędne będzie dodanie w przeglądarce wyjątku aby uruchomić aplikację.
Szyfrowanie pliku konfiguracyjnego
Aplikacje przechowują dane konfiguracyjne w pliku Web.config w postaci niezaszyfrowanej. Zalecamy zaszyfrowanie sekcji zawierającej dane wrażliwe. Do szyfrowania używamy narzędzia ASP.NET IIS Registration Tool (Aspnet_regiis.exe).
Narzędzie aspnet_regiis.exe znajduje się w katalogu %windows%\Microsoft.NET\Framework\<wersja_.net_framework>
Aby zaszyfrować wybrane sekcje postępujemy kolejno:
- Uruchamiamy jako administrator Wiersz polecenia (cmd.exe).
- Przechodzimy do katalogu w którym znajduje się narzędzie ASP.NET IIS Registration Tool służące do szyfrowania.
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
Szyfrowanie
Schemat:
aspnet_regiis -pe "<nazwa_sekcji>" -app "/<folder_aplikacji>" -prov "RsaProtectedConfigurationProvider"
Przykład:
aspnet_regiis -pe "connectionStrings" -app "/eWizja" -prov "RsaProtectedConfigurationProvider"
Efekt:
<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>LyUdnmEgyetq9stzQizLkEiFfngcuxRZeNacsU0iHoKHyEvH40CIUiuv4I67DBT/Obf3yX9R6DZv42koMiHKSp7P4d3tE84nUVtAp8sdXgLnCh4ou9cx1Pbrzmbu/TXzHVOq2UsAh74hW0ULCKGjNfYvQiwHRJ1AZ3b5PHXA0uO6nI2vjZWH4t0LF2edd5zjSqtJRNvfmQoBBh7OSd5ZVyjGjJAftONsfah2Ffzepa4pjp1umWWUqLPROXrbujGP4DuLfbLvp1pt5O/y0zAypG3Z5ArCjlcGomLSn74qjLUCB1FcoZW9BQlb8U7jEhBNqg87sagoG1QgcmK4tbFvOg==</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>zuubyHkocmWvRdBiKk5jYhRdnziOmYMIiS55dR/rHa7dRZzdwBOZeKitl59RguJlDlJyuAkuFfHIDZwkEzFHbzZzWRQn+aBogyhsRrfhAskq/cQwLN0zelWeDM8+GLn4Qjpgh8VB6OODBK7L/e/hKYML3stS9xcccAPv3ycMTkx18VFWOWDtUQEWN3iUBnO51l/9EgONlUmKKizlusoCAG9OYuVIlVOHGnOKkaojDGoseCuerF4hEks4z7GeVM6ynbP6AQHn38BUCtA2fYl8irLoWFD+KUwqmzWdmRJuuvhZs5D8Eo8Q9cIuPZO1kxNIq97FdxNErz1jO4m10mioWZdkLWGdNIV2lc39aeCmBt8xVcMTVZQCnBP4h1uhUgEf3arfPqmuliDPsewBpTfo9sGeNKZuiqVJcJwxb8baiSPBomJLZBvQRCMLo4HlqRiY7+Ifd8h0vI6DutN1OsF3V0hBuX+jQQGsYg19K4eschppdjdAaUeXfg==</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
Odszyfrowanie
Schemat:
aspnet_regiis -pd "<nazwa_sekcji<" -app "/<folder_aplikacji>"
Przykład:
aspnet_regiis -pd "connectionStrings" -app "/eWizja"
Efekt:
<connectionStrings>
<add name="FbAuthConnection" connectionString="User=nazwa_uzytkownika;Password=trudne_haslo;Database=D:\Bazy\is_wizja.gdb;DataSource=localhost;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;"
providerName="FirebirdSql.Data.FirebirdClient" />
</connectionStrings>
Usługa sieciowa Finn
Wymagane biblioteki
Do działania aplikacji niezbędne jest doinstalowanie bibliotek umożliwiających uruchamianie w systemie Windows aplikacji stworzonych przy pomocy narzędzi programistycznych firmy Microsoft:
- .NET Framework w wersji 4.6.2 lub wyższej (do pobrania ze strony Microsoft),
- Microsoft Visual C++ 2017 Redistributable w wersji x86 (wersja x86 i x64 mogą być zainstalowane równolegle).
Usługi WCF
Do poprawnego działania usługi wymagane jest aktywowanie dodatkowej funkcji systemu Windows: .NET Framework 4.x > Usługi WCF > Aktywacja HTTP.
Dodawanie nowej witryny do IIS
- Wypakowujemy pliki usługi sieciowej do wybranej lokalizacji, np. C:\inetpub\FinnServiceClient (ścieżka domyślna witryn IIS to C:\inetpub\<katalog_aplikacji>).
- Dodajemy nową witrynę w IIS:
- Uruchamiamy Menedżer internetowych usług informacyjnych (IIS) > w sekcji Połączenia (lewa strona) klikamy PPM > wybieramy Dodaj witrynę sieci Web.
- Pole Nazwa witryny uzupełniamy dowolną nazwą, np. FinnServiceClient. Ścieżka fizyczna to lokalizacja folderu, do którego wypakowaliśmy pliki usługi sieciowej FinnServiceClient.
- W sekcji Powiązanie typ połączenia zmieniamy na https, Port ustawiamy na 44316, a następnie wybieramy nasz Certyfikat SSL.
- Zatwierdzamy klikając na przycisk OK.
Powiązania / Porty
Aby usługa działała musimy prawidłowo ustawić numery portów powiązanych z usługą w IIS.
We wcześniejszym kroku ustawiliśmy już port 44316 dla https, pozostało nam ustawić port 55852 dla protokołu http. W tym celu w Menedżerze internetowych usług informacyjnych wchodzimy w dodaną witrynę. Z prawej strony okna, w sekcji Akcje klikamy na opcje Powiązania. Dodajemy tam nowe powiązanie, w którym Typ to http, a Port to 55852.
Web.config - parametry
Edytując plik Web.config ustawiamy parametry usługi sieciowej.
connectionStrings
W sekcji connectionStrings podajemy ścieżkę bazy danych oraz nazwę użytkownika i hasło dostępu. Możemy również aktywować zapisywanie logów.
<connectionStrings>
<add name="FbConnection" connectionString="User=SYSDBA;Password=masterkey;Database=D:\Baza_danych\is_pdk.GDB;DataSource=localhost;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;" providerName="FirebirdSql.Data.FirebirdClient" />
<add name="FbSecure" connectionString="true" />
<add name="LogFile" connectionString="C:\inetpub\FinnSoapService\log\Log.txt" />
<add name="Log" connectionString="true" />
</connectionStrings>
- Uwaga! Zapisywanie logów w pliku Log.txt wymaga nadanie uprawnień do zapisu dla folderu log dla użytkownika IIS_WPG.
Rozmiar przesyłanych plików
Sekcja bindings określa maksymalny rozmiar pliku, który może zostać przesłany.
<bindings>
<basicHttpBinding>
<binding maxReceivedMessageSize="300485760">
</binding>
</basicHttpBinding>
<basicHttpsBinding>
<binding maxReceivedMessageSize="300485760">
</binding>
</basicHttpsBinding>
</bindings>
Status usługi sieciowej
Status usługi sieciowej możemy sprawdzić wchodząc na stronę https://localhost:44316/BrokerWebService.svc, jeśli wyświetli się strona jak na obrazku poniżej oznacza to, że usługa działa prawidłowo.
Konfiguracja po stronie Podatków
Pozostaje skonfigurować EOB w aplikacji Podatki, opis znajduje się na stronie ViDOK konfiguracja repozytorium dokumentów#Finn.