Garten · Domain Security

Garten Domain Security

Domain security

Domain security posture for Garten, probed live across 7 host(s) and 1 registrable domain(s). 7 host(s) serve HTTPS (up to TLSv1.2); 1 advertise HSTS. Email/DNS controls: DNSSEC absent, SPF present, DMARC present (p=quarantine).

CompanyFood ServiceCorporate WellnessWorkplaceCateringEmployee BenefitsMicro MarketFacilities ManagementHospitalityStreaming VideoMCP

Transport & Host Security

garten.co
HTTPS: yes · TLS: TLSv1.2 · HSTS: no · cert expires: Sep 5 19:05:32 2026 GMT
www.garten.co
HTTPS: yes · TLS: TLSv1.2 · HSTS: no · cert expires: Sep 5 19:05:32 2026 GMT
tv.garten.co
HTTPS: yes · TLS: TLSv1.3 · HSTS: yes · cert expires: Oct 14 21:57:47 2026 GMT
api.garten.co
HTTPS: yes · TLS: TLSv1.2 · HSTS: no · cert expires: Sep 5 19:05:32 2026 GMT
client.garten.co
HTTPS: yes · TLS: TLSv1.2 · HSTS: no · cert expires: Sep 5 19:05:32 2026 GMT
experiences.garten.co
HTTPS: yes · HSTS: no · cert expires: Sep 23 03:32:12 2026 GMT
admin.garten.co
HTTPS: yes · TLS: TLSv1.2 · HSTS: no · cert expires: Jan 23 23:59:59 2027 GMT

Domain (DNS/Email) Security

garten.co
DNSSEC: no · SPF: yes · DMARC: yes (p=quarantine) · CAA: none

Source

Domain Security

garten-domain-security.yml Raw ↑
generated: '2026-08-04'
method: probed
source: live DNS/TLS/HTTP probes of apis.yml + discovered garten.co hosts
note: >-
  Baseline written by 0-working/probe-domain-security.py, then extended by hand with the
  additional garten.co hosts found during contract discovery (DNS + crt.sh). The script
  reported `hsts: null` for tv.garten.co because of how it reads the root document; a HEAD
  of https://tv.garten.co/ and a POST to https://tv.garten.co/mcp both return
  `strict-transport-security: max-age=63072000; includeSubDomains`, so HSTS is recorded
  true for that host.
hosts:
- host: garten.co
  https: true
  tls_version: TLSv1.2
  cert_expires: Sep  5 19:05:32 2026 GMT
  hsts: false
  http_status: 200
  note: WordPress corporate site (W3 Total Cache, Yoast)
- host: www.garten.co
  https: true
  tls_version: TLSv1.2
  cert_expires: Sep  5 19:05:32 2026 GMT
  hsts: false
  http_status: 200
- host: tv.garten.co
  https: true
  tls_version: TLSv1.3
  cert_expires: Oct 14 21:57:47 2026 GMT
  hsts: true
  hsts_max_age: 63072000
  hsts_include_subdomains: true
  http_status: 200
  note: garten TV on the Uscreen platform (Google Frontend); the only host carrying HSTS
    and the only host with a discovery surface
- host: api.garten.co
  https: true
  tls_version: TLSv1.2
  cert_expires: Sep  5 19:05:32 2026 GMT
  hsts: false
  http_status: 200
  note: Spree/Solidus commerce application; /api/v1 and /api/v2 answer HTTP 401 "You must
    specify an API key."
- host: client.garten.co
  https: true
  tls_version: TLSv1.2
  cert_expires: Sep  5 19:05:32 2026 GMT
  hsts: false
  http_status: 200
  note: garten client portal — same application as api.garten.co
- host: experiences.garten.co
  https: true
  cert_expires: Sep 23 03:32:12 2026 GMT
  hsts: false
  http_status: 200
- host: admin.garten.co
  https: true
  tls_version: TLSv1.2
  cert_expires: Jan 23 23:59:59 2027 GMT
  hsts: false
  http_status: 200
  note: internal admin tool on AWS Elastic Beanstalk; SPA catch-all returns 200 for every
    path
domains:
- domain: garten.co
  dnssec: false
  caa: []
  spf: true
  spf_policy: '-all'
  spf_record: 'v=spf1 include:_u.garten.co._spf.dmarclc.com include:mail.zendesk.com
    include:spf.zoho.com include:transmail.net include:_spf.intacct.com -all'
  dmarc: true
  dmarc_policy: quarantine
  dmarc_rua: mailto:dmarc@garten.co
  dmarc_pct: 100
summary:
  strengths:
  - SPF published with a hard fail (-all)
  - DMARC published at p=quarantine with pct=100 and both rua and ruf reporting
  - HSTS with a two-year max-age and includeSubDomains on the garten TV host
  gaps:
  - no DNSSEC on garten.co
  - no CAA records, so any CA may issue for the domain
  - no HSTS on the corporate site, the client portal or the commerce API host, all of
    which still negotiate at TLS 1.2 rather than TLS 1.3
  - DMARC policy is quarantine rather than reject
x-evidence:
  fetched: '2026-08-04'
  tools: [dig, openssl s_client, curl]