# Włączanie HTTPS dla Xopero ONE w modelu wdrożenia on-premise

## Linux i Windows

### <mark style="background-color:blue;">Konfiguracja</mark>

1. Otwórz plik `appsettings.json` znajdujący się w katalogu instalacyjnym usługi **Xopero ONE Management Service**:
   * **Windows (domyślnie):** `C:\Program Files\Xopero ONE Backup&Recovery`
   * **Linux (domyślnie):** `/opt/XoperoONEManagementService`

{% hint style="info" %}
Plik ten jest standardowym plikiem konfiguracyjnym **JSON**, który należy zmodyfikować.
{% endhint %}

2. Zlokalizuj sekcję `"commented_out_Kestrel"`, która domyślnie wygląda następująco:

```json
"commented_out_Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://*:5000"
}
```

3. Zmodyfikuj sekcję, usuwając przedrostek `commented_out_` i wprowadzając konfigurację HTTPS w następujący sposób:

```json
"Kestrel": {
"Endpoints": {
      		"Http": {
      		 		"Url": "http://*:5000"
      },
		"Https": {
				"Url": "https://*:5001",
				"Certificate":{
						"Path": "<.pfx file path>",
						"Password": "<certificate password>"
		}
	  }
    }
  }
```

**Path** - Pełna ścieżka do pliku certyfikatu .pfx (Pamiętaj o użyciu podwójnych ukośników w systemie **Windows**. Przykładowo, jeśli certyfikat znajduje się w `C:\cert.pfx`, zapisz to jako: `C:\\cert.pfx`)

* **Path:** Pełna ścieżka do pliku certyfikatu .pfx (Pamiętaj o użyciu podwójnych ukośników w systemie **Windows**. Przykładowo, jeśli certyfikat znajduje się w `C:\cert.pfx`, zapisz to jako: `C:\\cert.pfx`).
* **Password:** Hasło do certyfikatu.

{% hint style="info" %}
Więcej o konfiguracji **Kestrel** możesz dowiedzieć się na [oficjalnej stronie Microsoft](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel/endpoints?view=aspnetcore-9.0).
{% endhint %}

### <mark style="background-color:blue;">Restartowanie usługi Xopero ONE Management Service</mark>

Po edycji pliku `appsettings.json`, zrestartuj usługę, aby zastosować zmiany:

* **Windows**:

```cmd
net stop XoperoONEManagementService
net start XoperoONEManagementService
```

* **Linux**:

```bash
systemctl restart XoperoONEManagementService
```

{% hint style="danger" %}
Po skonfigurowaniu HTTPS dla **Management Service**, musisz przełączyć komunikację agentów na ten protokół. W tym celu znajdź plik `config.json` w katalogu instalacyjnym agenta (domyślnie: `C:\Program Files\Xopero ONE Backup&Recovery Agent`), otwórz go za pomocą dowolnego edytora tekstu, następnie zmień parametr `ServiceUrl` aby używać protokołu `https://`. Zapisz zmiany i zrestartuj agenta.
{% endhint %}

***

## Docker

### <mark style="background-color:blue;">Konfiguracja</mark>

Podczas wdrażania kontenera z usługą Xopero ONE, musisz uwzględnić dwie dodatkowe zmienne środowiskowe:

`ASPNETCORE_Kestrel__Certificates__Default__Path ASPNETCORE_Kestrel__Certificates__Default__Password`

Te zmienne definiują ścieżkę do certyfikatu **SSL** oraz odpowiadające mu hasło.

**Wartość** zmiennych skonfiguruj w następujący sposób:

* `ASPNETCORE_Kestrel__Certificates__Default__Path` — ścieżka do certyfikatu w formacie `.pfx`.&#x20;
* `ASPNETCORE_Kestrel__Certificates__Default__Password` — hasło do certyfikatu.&#x20;

Przykład:

<figure><img src="https://content.gitbook.com/content/wg6DDqlTFok8F9zv6rqa/blobs/jWA6AG1o4ZHQDIXSVpPp/image.png" alt=""><figcaption></figcaption></figure>

Konieczne jest upewnienie się, że certyfikat jest przechowywany w **zamontowanej** i **trwałej lokalizacji**, aby pozostał dostępny i nie został usunięty podczas aktualizacji lub ponownego wdrażania kontenera.

{% hint style="warning" %}
Poza wdrożeniem certyfikatu na serwerze, wszystkie urządzenia łączące się z konsolą muszą uznawać ten certyfikat za **zaufany**. W przypadku korzystania z certyfikatu **samopodpisanego** (**self-signed**), musisz go zaimportować na **każdym** **urządzeniu łączącym się z konsolą**. W przeciwnym wypadku, połączenie szyfrowane HTTPS może zostać odrzucone, ze względu na brak zaufania do certyfikatu.
{% endhint %}
