diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index 7f5da547805c..c0f36fcfd356 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -2514,6 +2514,16 @@ cp /var/lib/redis/dump.rdb "/var/lib/redis-mastodon/dump.rdb"
enabled.
+
+
+ The Nextcloud module now allows setting the value of the
+ max-age directive of the
+ Strict-Transport-Security HTTP header,
+ which is now controlled by the
+ services.nextcloud.https option, rather
+ than services.nginx.recommendedHttpHeaders.
+
+
The spark3 package has been updated from
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index acead4120487..5902957a5352 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -892,6 +892,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- The Nextcloud module now supports to create a Mysql database automatically
with `services.nextcloud.database.createLocally` enabled.
+- The Nextcloud module now allows setting the value of the `max-age` directive of the `Strict-Transport-Security` HTTP header, which is now controlled by the `services.nextcloud.https` option, rather than `services.nginx.recommendedHttpHeaders`.
+
- The `spark3` package has been updated from 3.1.2 to 3.2.1 ([#160075](https://github.com/NixOS/nixpkgs/pull/160075)):
- Testing has been enabled for `aarch64-linux` in addition to `x86_64-linux`.
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index a4b886821ebf..eb82cea62a4b 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -546,10 +546,23 @@ in {
'';
};
- nginx.recommendedHttpHeaders = mkOption {
- type = types.bool;
- default = true;
- description = "Enable additional recommended HTTP response headers";
+ nginx = {
+ recommendedHttpHeaders = mkOption {
+ type = types.bool;
+ default = true;
+ description = "Enable additional recommended HTTP response headers";
+ };
+ hstsMaxAge = mkOption {
+ type = types.ints.positive;
+ default = 15552000;
+ description = ''
+ Value for the max-age
directive of the HTTP
+ Strict-Transport-Security
header.
+
+ See section 6.1.1 of IETF RFC 6797 for detailed information on this
+ directive and header.
+ '';
+ };
};
};
@@ -983,7 +996,9 @@ in {
add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Frame-Options sameorigin;
add_header Referrer-Policy no-referrer;
- add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
+ ''}
+ ${optionalString (cfg.https) ''
+ add_header Strict-Transport-Security "max-age=${toString cfg.nginx.hstsMaxAge}; includeSubDomains" always;
''}
client_max_body_size ${cfg.maxUploadSize};
fastcgi_buffers 64 4K;