This PR adds support for generating a self-signed CA and then using that CA to generate TLS certificates. A new tool `duplicati-configure` / `Duplicati.CommandLine.ConfigureTool.exe` is added to manage the certificates. The tool saves the configuration in the database and is meant to run with elevated privileges for the initial CA installation. The option `--configure-https` can be added to server/trayicon, and if the process has permissions, this will automatically install the CA certificate. If a CA is configured, the server will automatically issue, renew and use a TLS certificate. With this setup, the TLS is opt-in, but once the flow is well tested, we can switch it to opt-out.
61 lines
3.6 KiB
XML
61 lines
3.6 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<OutputType>Exe</OutputType>
|
|
<TargetFramework>net10.0</TargetFramework>
|
|
<IsPackable>false</IsPackable>
|
|
<IsPublishable>false</IsPublishable>
|
|
<RootNamespace>Duplicati.UnitTest</RootNamespace>
|
|
<Copyright>Copyright © 2025 Team Duplicati, MIT license</Copyright>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="coverlet.collector" Version="6.0.4">
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
<PrivateAssets>all</PrivateAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="nunit" Version="4.3.2" />
|
|
<PackageReference Include="NUnit3TestAdapter" Version="5.0.0" />
|
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
|
<PackageReference Include="Testcontainers" Version="3.4.0" />
|
|
<PackageReference Include="TestContainers.Container.Abstractions" Version="1.5.4" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="../CommandLine/DatabaseTool/Duplicati.CommandLine.DatabaseTool.csproj" />
|
|
<ProjectReference Include="..\CommandLine\BackendTester\Duplicati.CommandLine.BackendTester.csproj" />
|
|
<ProjectReference Include="..\CommandLine\CLI\Duplicati.CommandLine.csproj" />
|
|
<ProjectReference Include="..\Library\Backend\OAuthHelper\Duplicati.Library.OAuthHelper.csproj" />
|
|
<ProjectReference Include="..\Library\Compression\Duplicati.Library.Compression.csproj" />
|
|
<ProjectReference Include="..\Library\DynamicLoader\Duplicati.Library.DynamicLoader.csproj" />
|
|
<ProjectReference Include="..\Library\Logging\Duplicati.Library.Logging.csproj" />
|
|
<ProjectReference Include="..\Library\Main\Duplicati.Library.Main.csproj" />
|
|
<ProjectReference Include="..\Library\Utility\Duplicati.Library.Utility.csproj" />
|
|
<ProjectReference Include="..\License\Duplicati.License.csproj" />
|
|
<ProjectReference Include="..\Server\Duplicati.Server.Serialization\Duplicati.Server.Serialization.csproj" />
|
|
<ProjectReference Include="..\Server\Duplicati.Server.csproj" />
|
|
<ProjectReference Include="..\CommandLine\BackendTool\Duplicati.CommandLine.BackendTool.csproj" />
|
|
<ProjectReference Include="..\Library\Snapshots\Duplicati.Library.Snapshots.csproj" />
|
|
<ProjectReference Include="..\Library\SQLiteHelper\Duplicati.Library.SQLiteHelper.csproj" />
|
|
<ProjectReference Include="..\Library\Localization\Duplicati.Library.Localization.csproj" />
|
|
<ProjectReference Include="..\Library\AutoUpdater\Duplicati.Library.AutoUpdater.csproj" />
|
|
<ProjectReference Include="..\CommandLine\RecoveryTool\Duplicati.CommandLine.RecoveryTool.csproj" />
|
|
<ProjectReference Include="..\Library\UsageReporter\Duplicati.Library.UsageReporter.csproj" />
|
|
<ProjectReference Include="..\Tools\Duplicati.Tools.csproj" />
|
|
<ProjectReference Include="..\..\Tools\RemoteSynchronization\RemoteSynchronization.csproj" />
|
|
<ProjectReference Include="..\..\proprietary\DiskImage\Duplicati.Proprietary.DiskImage.csproj" />
|
|
<ProjectReference Include="..\WebserverCore\Duplicati.WebserverCore.csproj" />
|
|
<ProjectReference Include="..\Library\Certificates\Duplicati.Library.Certificates.csproj" />
|
|
</ItemGroup>
|
|
|
|
<!-- Copy in WindowsModules for easier debug, or if we are targeting Windows -->
|
|
<Target Name="CopyWindowsModulesRuntime" AfterTargets="Build" Condition="'$(OS)' == 'Windows_NT'">
|
|
<ItemGroup>
|
|
<_WinMods Include="..\Library\WindowsModules\bin\$(Configuration)\net10.0-windows7.0\**\*.dll" />
|
|
</ItemGroup>
|
|
|
|
<Copy SourceFiles="@(_WinMods)" DestinationFolder="$(OutDir)" SkipUnchangedFiles="true" />
|
|
</Target>
|
|
|
|
</Project>
|