| 1. General Results, most used to calculate the result |
A | name "72.24.30.146" is ipv4 address, public suffix is not defined
|
A | Good: All ip addresses are public addresses
|
A | Good: destination is https
|
A | Good: No cookie sent via http.
|
A | Good: every https has a Strict Transport Security Header
|
A | Good: HSTS max-age is long enough, 31536000 seconds = 365 days
|
A | Good: HSTS has includeSubdomains - directive
|
A | Good: HSTS has preload directive
|
| Warning: HSTS preload sent, but not in Preload-List. Never send a preload directive if you don't know what preload means. Check https://hstspreload.org/ to learn the basics about the Google-Preload list. If you send a preload directive, you should **immediately** add your domain to the HSTS preload list via https://hstspreload.org/ . If Google accepts the domain, so the status is "pending": Note that new entries are hardcoded into the Chrome source code and can take several months before they reach the stable version. So you will see this message some months. If you don't want that or if you don't understand "preload", but if you send a preload directive and if you have correct A-redirects, everybody can add your domain to that list. Then you may have problems, it's not easy to undo that. So if you don't want your domain preloaded, remove the preload directive.
|
A | Good: Some urls with http status 200/404 have a complete Content-Type header (MediaType / MediaSubType + correct charset):0 complete Content-Type - header (4 urls)
|
| https://72.24.30.146/ 72.24.30.146
|
| Url with incomplete Content-Type - header - missing charset
|
| https://72.24.30.146:443/
|
| Url with incomplete Content-Type - header - missing charset
|
| https://72.24.30.146:443/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de
|
| Url with incomplete Content-Type - header - missing charset
|
| https://72.24.30.146/ 72.24.30.146
|
| Url with incomplete Content-Type - header - missing charset
|
C | Error - no preferred version www or non-www. Select one version as preferred version, then add a redirect https + not-preferred version to https + preferred version. Perhaps in your port 443 vHost something like "RewriteEngine on" + "RewriteCond %{SERVER_NAME} = example.com" + "ReWriteRule ^ https://www.example.com%{REQUEST_URI} [END,QSA,R=permanent]" (three rows, without the "). That should create a redirect https + example.com ⇒ https + www.example.com. Or switch both values to use the non-www version as your preferred version.
|
C | Error - more then one version with Http-Status 200. After all redirects, all users (and search engines) should see the same https url: Non-www or www, but not both with http status 200.
|
I | https://72.24.30.146/ 72.24.30.146
|
| Content problems or problems with resources included - http links, files doesn't exist, different Content-Type definitions. Check the Html-Content - Part.
|
I | https://72.24.30.146:443/
|
| Content problems or problems with resources included - http links, files doesn't exist, different Content-Type definitions. Check the Html-Content - Part.
|
N | https://72.24.30.146/ 72.24.30.146
|
| Error - Certificate isn't trusted, RemoteCertificateNameMismatch
|
N | https://72.24.30.146:443/
|
| Error - Certificate isn't trusted, RemoteCertificateNameMismatch
|
N | https://72.24.30.146:443/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de
|
| Error - Certificate isn't trusted, RemoteCertificateNameMismatch
|
N | https://72.24.30.146/ 72.24.30.146
|
| Error - Certificate isn't trusted, RemoteCertificateNameMismatch
|
B | No _mta-sts TXT record found (mta-sts: Mail Transfer Agent Strict Transport Security - see RFC 8461). Read the result of server-daten.de (Url-Checks, Comments, Connections and DomainServiceRecords) to see a complete definition. Domainname: _mta-sts.72.24.30.146
|
| 2. Header-Checks (Cross-Origin-* headers are alpha - started 2024-06-05) |
A | 72.24.30.146 72.24.30.146
| Content-Security-Policy
| Ok: Header without syntax errors found: default-src 'self' ;
|
A |
|
| Good: default-src directive only with 'none' or 'self', additional sources are blocked.
|
A |
|
| Good: default-src without 'unsafe-inline' or 'unsave-eval'.
|
E |
|
| Bad: No form-action directive found. Use one to limit the form - action - destinations. form-action is a navigation-directive, so default-src isn't used.
|
E |
|
| Bad: No frame-ancestors directive found. Use one to limit the pages allowed to use this page in frame / iframe / object / embed / applet. frame-ancestors is a navigation-directive, so default-src isn't used.
|
E |
|
| Bad: No base-uri directive found. Use one to limit the URLs which can be used in a document's <base> element. Because it's a document directive, default-src isn't used, so an own directive is required.
|
A |
|
| Good: No object-src found, but the default-src used as fallback is defined and restricted.
|
A |
|
| Good: No script-src found, but the default-src used as fallback is defined and restricted.
|
A |
|
| Good: frame-src without data: defined or frame-src missing and the default-src used as fallback not allows the data: schema. That blocks hidden code injection. Insert <iframe src="data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+PGh0bWw+PGJvZHk+PHA+YmVmb3JlPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmFsZXJ0KCdYU1MnKTwvc2NyaXB0PjxwPmFmdGVyPC9ib2R5PjwvaHRtbD4="></iframe> in your page and see what happens.
|
A |
| X-Content-Type-Options
| Ok: Header without syntax errors found: nosniff
|
A |
| Referrer-Policy
| Ok: Header without syntax errors found: strict-origin
|
A |
| Permissions-Policy
| Ok: Header without syntax errors found: geolocation=()
|
A |
| X-Frame-Options
| Ok: Header without syntax errors found: SAMEORIGIN
|
B |
|
| Info: Header is deprecated. May not longer work in modern browsers. SAMEORIGIN. Better solution: Use a Content-Security-Policy Header with a frame-ancestors directive. DENY - use 'none', SAMEORIGIN - use 'self'. If you want to allow some domains to frame your page, add these urls.
|
A |
| Expect-CT
| Ok: Header without syntax errors found: max-age=0, report-uri="https://w5gfe.org/~bw/report.pl"
|
B |
|
| Info: Header is deprecated. May not longer work in modern browsers. max-age=0, report-uri="https://w5gfe.org/~bw/report.pl"
|
A |
| X-Xss-Protection
| Ok: Header without syntax errors found: 1; mode=block
|
B |
|
| Info: Header is deprecated. May not longer work in modern browsers. 1; mode=block
|
A | 72.24.30.146
| Content-Security-Policy
| Ok: Header without syntax errors found: default-src 'self' ;
|
A |
|
| Good: default-src directive only with 'none' or 'self', additional sources are blocked.
|
A |
|
| Good: default-src without 'unsafe-inline' or 'unsave-eval'.
|
E |
|
| Bad: No form-action directive found. Use one to limit the form - action - destinations. form-action is a navigation-directive, so default-src isn't used.
|
E |
|
| Bad: No frame-ancestors directive found. Use one to limit the pages allowed to use this page in frame / iframe / object / embed / applet. frame-ancestors is a navigation-directive, so default-src isn't used.
|
E |
|
| Bad: No base-uri directive found. Use one to limit the URLs which can be used in a document's <base> element. Because it's a document directive, default-src isn't used, so an own directive is required.
|
A |
|
| Good: No object-src found, but the default-src used as fallback is defined and restricted.
|
A |
|
| Good: No script-src found, but the default-src used as fallback is defined and restricted.
|
A |
|
| Good: frame-src without data: defined or frame-src missing and the default-src used as fallback not allows the data: schema. That blocks hidden code injection. Insert <iframe src="data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+PGh0bWw+PGJvZHk+PHA+YmVmb3JlPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmFsZXJ0KCdYU1MnKTwvc2NyaXB0PjxwPmFmdGVyPC9ib2R5PjwvaHRtbD4="></iframe> in your page and see what happens.
|
A |
| X-Content-Type-Options
| Ok: Header without syntax errors found: nosniff
|
A |
| Referrer-Policy
| Ok: Header without syntax errors found: strict-origin
|
A |
| Permissions-Policy
| Ok: Header without syntax errors found: geolocation=()
|
A |
| X-Frame-Options
| Ok: Header without syntax errors found: SAMEORIGIN
|
B |
|
| Info: Header is deprecated. May not longer work in modern browsers. SAMEORIGIN. Better solution: Use a Content-Security-Policy Header with a frame-ancestors directive. DENY - use 'none', SAMEORIGIN - use 'self'. If you want to allow some domains to frame your page, add these urls.
|
A |
| Expect-CT
| Ok: Header without syntax errors found: max-age=0, report-uri="https://w5gfe.org/~bw/report.pl"
|
B |
|
| Info: Header is deprecated. May not longer work in modern browsers. max-age=0, report-uri="https://w5gfe.org/~bw/report.pl"
|
A |
| X-Xss-Protection
| Ok: Header without syntax errors found: 1; mode=block
|
B |
|
| Info: Header is deprecated. May not longer work in modern browsers. 1; mode=block
|
| 3. DNS- and NameServer - Checks |
| 4. Content- and Performance-critical Checks |
A | Good: All checks /.well-known/acme-challenge/random-filename without redirects answer with the expected http status 404 - Not Found. Creating a Letsencrypt certificate via http-01 challenge should work. If it doesn't work: Check your vHost configuration (apachectl -S, httpd -S, nginx -T). Every combination of port and ServerName / ServerAlias (Apache) or Server (Nginx) must be unique. Merge duplicated entries in one vHost. If you use an IIS, extensionless files must be allowed in the /.well-known/acme-challenge subdirectory. Create a web.config in that directory. Content: <configuration><system.webServer><staticContent><mimeMap fileExtension="." mimeType="text/plain" /></staticContent></system.webServer></configuration>. If you have a redirect http ⇒ https, that's ok, Letsencrypt follows such redirects to port 80 / 443 (same or other server). There must be a certificate. But the certificate may be expired, self signed or with a not matching domain name. Checking the validation file Letsencrypt ignores such certificate errors. Trouble creating a certificate? Use https://community.letsencrypt.org/ to ask.
|
A | Good: Every https result with status 200 and greater 1024 Bytes is compressed (gzip, deflate, br checked).
|
A | Good: No https + http status 200 with inline CSS / JavaScript found
|
| https://72.24.30.146/ 72.24.30.146
|
| Warning: Https result with status 200 found, Html-Content is too big. Should be max. 110 %. May contain inline CSS / JavaScript, too much comments or white space. Re-used ressources - create files with a long Cache-Control max-age header. Remove comments and white space.
|
| https://72.24.30.146:443/
|
| Warning: Https result with status 200 found, Html-Content is too big. Should be max. 110 %. May contain inline CSS / JavaScript, too much comments or white space. Re-used ressources - create files with a long Cache-Control max-age header. Remove comments and white space.
|
| https://72.24.30.146/ 72.24.30.146
|
| Warning: Https result with status 200 found, Html-Content is too big. Should be max. 110 %. May contain inline CSS / JavaScript, too much comments or white space. Re-used ressources - create files with a long Cache-Control max-age header. Remove comments and white space.
|
A | Good: Every https connection via port 443 supports the http/2 protocol via ALPN.
|
| Warning: Images with a missing or too short Cache-Control header found. Browsers should cache and re-use these files. 2 image files without Cache-Control-Header, 0 with Cache-Control, but no max-age, 0 with Cache-Control max-age too short (minimum 7 days), 1 with Cache-Control long enough, 3 complete.
|
A | Good: All checked attribute values are enclosed in quotation marks (" or ').
|
A | Good: All img-elements have a valid alt-attribute.: 3 img-elements found.
|
| http://72.24.30.146/ 72.24.30.146
|
| Warning: HSTS header sent via http has no effect
|
| https://72.24.30.146:443/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de
| 5.046 seconds
| Warning: 404 needs more then one second
|
A | Duration: 169716 milliseconds, 169.716 seconds
|