Optionally enable HSTS using env vars. Useful for testing
This commit is contained in:
1 parent
6dc5a0faf8
commit
779d493513
3 files changed
+22
-1
No files matched your search
@@ -82,6 +82,18 @@ builder.Services.AddScoped<AppState>();
|
||||
|
||||
builder.Services.AddCascadingAuthenticationState();
|
||||
|
||||
// HSTS
|
||||
if (bool.Parse(Environment.GetEnvironmentVariable("ENABLE_HSTS") ?? "false"))
|
||||
{
|
||||
builder.Services.AddHsts(options =>
|
||||
{
|
||||
var hstsSection = builder.Configuration.GetSection("Hsts");
|
||||
options.MaxAge = TimeSpan.FromDays(hstsSection.GetValue<int>("MaxAgeDays", 365));
|
||||
options.IncludeSubDomains = hstsSection.GetValue<bool>("IncludeSubDomains", true);
|
||||
options.Preload = hstsSection.GetValue<bool>("Preload", false);
|
||||
});
|
||||
}
|
||||
|
||||
// Add services to the container.
|
||||
builder.Services.AddRazorComponents()
|
||||
.AddInteractiveServerComponents();
|
||||
|
||||
@@ -16,6 +16,12 @@
|
||||
"Twitter": "",
|
||||
"Mastodon": ""
|
||||
},
|
||||
"Hsts": {
|
||||
"Domain": "nas.oneputleygreen.com",
|
||||
"MaxAgeDays": 365,
|
||||
"IncludeSubDomains": true,
|
||||
"Preload": false
|
||||
},
|
||||
"Authentication": {
|
||||
"Google": {
|
||||
"ClientId": "",
|
||||
|
||||
+4
-1
@@ -32,6 +32,9 @@ LABEL org.opencontainers.image.title="Budgeteer" \
|
||||
# Ensure the SQLite data directory exists and is writable
|
||||
RUN mkdir -p /app/data
|
||||
|
||||
# HSTS domain — used as the certificate CN and read by the app via Hsts:Domain config
|
||||
ENV Hsts__Domain=nas.oneputleygreen.com
|
||||
|
||||
# Generate a self-signed TLS certificate for HTTPS
|
||||
RUN mkdir -p /app/certs && \
|
||||
openssl req -x509 -newkey rsa:4096 \
|
||||
@@ -39,7 +42,7 @@ RUN mkdir -p /app/certs && \
|
||||
-out /app/certs/cert.pem \
|
||||
-days 3650 \
|
||||
-nodes \
|
||||
-subj "/C=GB/ST=England/O=Budgeteer/CN=localhost" && \
|
||||
-subj "/C=GB/ST=England/O=Budgeteer/CN=${Hsts__Domain}" && \
|
||||
openssl pkcs12 -export \
|
||||
-out /app/certs/cert.pfx \
|
||||
-inkey /app/certs/key.pem \
|
||||
|
||||
Reference in new issue
Block a user