HTTPS-сертификат (SSL/TLS) обеспечивает защищенное соединение между клиентом и сервером, подтверждая подлинность сайта и шифруя передаваемые данные. В .NET для разработки можно использовать локальный самоподписанный сертификат или купленный у центра сертификации. Сертификат необходим для безопасности (защита данных), доверия пользователей (значок замка в браузере) и выполнения требований стандартов. В разработке часто используют локальные сертификаты.

 

Для генерации локального .pfx-сертификата в .NET достаточно выполнить команду:

 

terminal

 

dotnet dev-certs https -ep d:/aspnetapp.pfx -p 123456

 

 

 

В этой команде, указывается путь сохранения сертифика и пароль. Обратите внимание, такой сертификат подходит для разработки и тестирования, однако, для продакшена необходимо приобрести сертификат.

 

 

Подключение сертификата

Необходимо перейти в папку с Docker-контейнером и создать папку stimulsoft-server. Далее нужно скопировать туда сгенерированный сертификат.

 

После этого следует отредактировать файл docker-compose.yml, добавив параметры для работы с HTTPS. Указываются порт для HTTPS-запросов, внутренние URL-адреса (для продакшена вместо * рекомендуется указывать реальные домены или IP-адреса), а также путь к сертификату и его пароль:

 

docker-compose.yml

...

ASPNETCORE_HTTPS_PORTS: 8081

Urls: "https://*:8081;http://*:8080"

ASPNETCORE_Kestrel__Certificates__Default__Path: "/var/lib/stimulsoft-server/aspnetapp.pfx"

ASPNETCORE_Kestrel__Certificates__Default__Password: 123456

...

 

 

Если директория с файлами сервера еще не примонтирована, это можно сделать в docker-compose.yml с помощью секции volumes:

 

docker-compose.yml

...

volumes:

- ./stimulsoft-server:/var/lib/stimulsoft-server

...

 

 

Запускаем контейнер при помощи команды:

 

terminal

 

docker-compose up

 

 

 

Теперь Stimulsoft Server будет доступен по HTTPS на порту 8081 по адресу https://localhost:8081. Для HTTP-протокола сервер доступен по адресу http://localhost:8080.

 

 

Файл docker-compose.yml

Приведем пример содержимого docker-compose.yml:

 

docker-compose.yml

 

services:

server:

image: stimulsoft/server:dev

ports:

- 8080:8080

- 8081:8081

volumes:

- ./stimulsoft-server:/var/lib/stimulsoft-server

environment:

ASPNETCORE_HTTP_PORTS: 8080

ASPNETCORE_HTTPS_PORTS: 8081

Urls: "https://*:8081;http://*:8080"

ASPNETCORE_Kestrel__Certificates__Default__Path: "/var/lib/stimulsoft-server/aspnetapp.pfx"

ASPNETCORE_Kestrel__Certificates__Default__Password: 123456

Storage__DatabaseType: "MySql"

Storage__MySqlConnectionString: "Server=mysql; port=3306; Database=server; UserId=root; Pwd=root;"

  

mysql:

image: mysql:8.0

ports:

- 3306:3306

volumes:

- './mysql:/var/lib/mysql'

environment:

MYSQL_ROOT_PASSWORD: "root"

MYSQL_DATABASE: "server"