1. General Results, most used to calculate the result A name "weik.cloud" is domain, public suffix is ".cloud", top-level-domain is ".cloud", top-level-domain-type is "generic", tld-manager is "ARUBA PEC S.p.A.", num .cloud-domains preloaded: 281 (complete: 175327) A Good: All ip addresses are public addresses A Good: Minimal 2 ip addresses per domain name found: weik.cloud has 2 different ip addresses (authoritative). A Good: Minimal 2 ip addresses per domain name found: www.weik.cloud has 2 different ip addresses (authoritative). A Good: Ipv4 and Ipv6 addresses per domain name found: weik.cloud has 1 ipv4, 1 ipv6 addresses A Good: Ipv4 and Ipv6 addresses per domain name found: www.weik.cloud has 1 ipv4, 1 ipv6 addresses A Good: No asked Authoritative Name Server had a timeout A https://next.weik.cloud/ https://next.weik.cloud/login Correct redirect https to https A https://weik.cloud/ 2001:470:716e:4f80::11 https://next.weik.cloud/ Correct redirect https to https A https://next.weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de https://next.weik.cloud/login Correct redirect https to https A https://[2001:0470:716e:4f80:0000:0000:0000:0011]/ 2001:470:716e:4f80::11 https://next.weik.cloud/ Correct redirect https to https A Good: No cookie sent via http. A Good: every cookie sent via https is marked as secure A Good: Every cookie has a SameSite Attribute with a correct value Strict/Lax/None HSTS-Preload-Status: unknown. Domain never included in the Preload-list. Check https://hstspreload.org/ to learn some basics about the Google-Preload-List. A Good: Some urls with http status 200/404 have a complete Content-Type header (MediaType / MediaSubType + correct charset):1 complete Content-Type - header (8 urls) A http://weik.cloud/ 109.90.30.42 Url with Content-Type - parse error: Header: application/octet-stream,text/plain, parse error: ,text/plain A http://www.weik.cloud/ 109.90.30.42 Url with Content-Type - parse error: Header: application/octet-stream,text/plain, parse error: ,text/plain A https://weik.cloud/ 109.90.30.42 Url with Content-Type - parse error: Header: application/octet-stream,text/plain, parse error: ,text/plain A https://www.weik.cloud/ 109.90.30.42 Url with Content-Type - parse error: Header: application/octet-stream,text/plain, parse error: ,text/plain A http://weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 109.90.30.42 Url with Content-Type - parse error: Header: application/octet-stream,text/plain, parse error: ,text/plain A http://www.weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 109.90.30.42 Url with Content-Type - parse error: Header: application/octet-stream,text/plain, parse error: ,text/plain A https://109.90.30.42/ 109.90.30.42 Url with Content-Type - parse error: Header: application/octet-stream,text/plain, parse error: ,text/plain B https://weik.cloud/ 109.90.30.42 Missing HSTS-Header B https://www.weik.cloud/ 109.90.30.42 Missing HSTS-Header B https://next.weik.cloud/ max-age=31536000; includeSubDomains; preload; Critical: HSTS-Header has Parse-Errors. Empty entry, remove the semicolon at the end., Unknown directive found. Only max-age (with value), includeSubdomains or preload allowed. B https://weik.cloud/ 2001:470:716e:4f80::11 max-age=31536000; includeSubDomains; preload; Critical: HSTS-Header has Parse-Errors. Empty entry, remove the semicolon at the end., Unknown directive found. Only max-age (with value), includeSubdomains or preload allowed. B https://next.weik.cloud/login max-age=31536000; includeSubDomains; preload; Critical: HSTS-Header has Parse-Errors. Empty entry, remove the semicolon at the end., Unknown directive found. Only max-age (with value), includeSubdomains or preload allowed. B https://www.weik.cloud/ 2001:470:716e:4f80::11 max-age=31536000; includeSubDomains; preload; Critical: HSTS-Header has Parse-Errors. Empty entry, remove the semicolon at the end., Unknown directive found. Only max-age (with value), includeSubdomains or preload allowed. B https://next.weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de max-age=31536000; includeSubDomains; preload; Critical: HSTS-Header has Parse-Errors. Empty entry, remove the semicolon at the end., Unknown directive found. Only max-age (with value), includeSubdomains or preload allowed. B https://[2001:0470:716e:4f80:0000:0000:0000:0011]/ 2001:470:716e:4f80::11 max-age=31536000; includeSubDomains; preload; Critical: HSTS-Header has Parse-Errors. Empty entry, remove the semicolon at the end., Unknown directive found. Only max-age (with value), includeSubdomains or preload allowed. 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. E http://weik.cloud/ 2001:470:716e:4f80::11 https://next.weik.cloud/ Wrong redirect one domain http to other domain https. First redirect to https without new dns query, so the server can send the HSTS header. That's fundamental using HSTS (Http Strict Transport Security). First step: Add correct redirects http ⇒ https. Perhaps in your port 80 vHost something like "RewriteEngine on" + "RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]" (two rows, without the "). Don't add this in your port 443 vHost, that would create a loop. Then recheck your domain, should be Grade C. There is the rule to select one https version as preferred version. E http://www.weik.cloud/ 2001:470:716e:4f80::11 https://next.weik.cloud/ Wrong redirect one domain http to other domain https. First redirect to https without new dns query, so the server can send the HSTS header. That's fundamental using HSTS (Http Strict Transport Security). First step: Add correct redirects http ⇒ https. Perhaps in your port 80 vHost something like "RewriteEngine on" + "RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]" (two rows, without the "). Don't add this in your port 443 vHost, that would create a loop. Then recheck your domain, should be Grade C. There is the rule to select one https version as preferred version. H Fatal error: http result with http-status 200, no encryption. Add a redirect http ⇒ https, so every connection is secure. Perhaps in your port 80 vHost something like "RewriteEngine on" + "RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]" (two rows, without the "). Don't add this in your port 443 vHost, that would create a loop. K http://weik.cloud/ 109.90.30.42, Status 200 http://weik.cloud/ 2001:470:716e:4f80::11, Status 301 Configuration problem - different ip addresses with different status K http://www.weik.cloud/ 109.90.30.42, Status 200 http://www.weik.cloud/ 2001:470:716e:4f80::11, Status 301 Configuration problem - different ip addresses with different status K https://weik.cloud/ 109.90.30.42, Status 200 https://weik.cloud/ 2001:470:716e:4f80::11, Status 301 Configuration problem - different ip addresses with different status K https://www.weik.cloud/ 109.90.30.42, Status 200 https://www.weik.cloud/ 2001:470:716e:4f80::11, Status 301 Configuration problem - different ip addresses with different status K http://weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 109.90.30.42, Status 200 http://weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 2001:470:716e:4f80::11, Status 301 Configuration problem - different ip addresses with different status K http://www.weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 109.90.30.42, Status 200 http://www.weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 2001:470:716e:4f80::11, Status 301 Configuration problem - different ip addresses with different status N https://[2001:0470:716e:4f80:0000:0000:0000:0011]/ 2001:470:716e:4f80::11 https://next.weik.cloud/ Error - Certificate isn't trusted, RemoteCertificateNameMismatch N https://109.90.30.42/ 109.90.30.42 Error - Certificate isn't trusted, RemoteCertificateNameMismatch A Good: More then one ip address per domain name found, checking all ip addresses the same http status and the same certificate found: Domain weik.cloud, 2 ip addresses. A Good: More then one ip address per domain name found, checking all ip addresses the same http status and the same certificate found: Domain www.weik.cloud, 2 ip addresses. 2. Header-Checks (alpha, started 2022-10-23, may be buggy / incomplete) 3. DNS- and NameServer - Checks A Info:: 27 Root-climbing DNS Queries required to find all IPv4- and IPv6-Addresses of 2 Name Servers. A Info:: 27 Queries complete, 27 with IPv6, 0 with IPv4. A Good: All DNS Queries done via IPv6. Bad (greater 8):: An average of 13.5 queries per domain name server required to find all ip addresses of all name servers. A Info:: 2 different Name Servers found: pdns09.domaincontrol.com, pdns10.domaincontrol.com, 2 Name Servers included in Delegation: pdns09.domaincontrol.com, pdns10.domaincontrol.com, 2 Name Servers included in 1 Zone definitions: pdns09.domaincontrol.com, pdns10.domaincontrol.com, 1 Name Servers listed in SOA.Primary: pdns09.domaincontrol.com. A Good: Only one SOA.Primary Name Server found.: pdns09.domaincontrol.com. A Good: SOA.Primary Name Server included in the delegation set.: pdns09.domaincontrol.com. A Good: Consistency between delegation and zone. The set of NS records served by the authoritative name servers must match those proposed for the delegation in the parent zone. Ordered list of name servers: pdns09.domaincontrol.com, pdns10.domaincontrol.com A Good: All Name Server Domain Names have a Public Suffix. A Good: All Name Server Domain Names ending with a Public Suffix have minimal one IPv4- or IPv6 address. A Good: All Name Server ip addresses are public. A Good: Minimal 2 different name servers (public suffix and public ip address) found: 2 different Name Servers found Warning: All Name Servers have the same Top Level Domain / Public Suffix. If there is a problem with that Top Level Domain, your domain may be affected. Better: Use Name Servers with different top level domains.: 2 Name Servers, 1 Top Level Domain: com Warning: All Name Servers have the same domain name. If there is a problem with that domain name (or with the name servers of that domain name), your domain may be affected. Better: Use Name Servers with different domain names / different top level domains.: Only one domain name used: domaincontrol.com Warning: All Name Servers from the same Country / IP location.: 2 Name Servers, 1 Countries: US A A Info: IPv6-Subnet-list: 2 Name Servers with IPv6, 1 different subnets (first block): 2603:, 1 different subnets (first two blocks): 2603:0005:, 2 different subnets (first three blocks): 2603:0005:21e2:, 2603:0005:22e2:, 2 different subnets (first four blocks): 2603:0005:21e2:0000:, 2603:0005:22e2:0000: A Good: Name Server IPv6 addresses from different subnets found. A Good: Nameserver supports TCP connections: 2 good Nameserver A Good: Nameserver supports Echo Capitalization: 2 good Nameserver A Good: Nameserver supports EDNS with max. 512 Byte Udp payload, message is smaller: 2 good Nameserver A Good: Nameserver has passed 10 EDNS-Checks (OP100, FLAGS, V1, V1OP100, V1FLAGS, DNSSEC, V1DNSSEC, NSID, COOKIE, CLIENTSUBNET): 2 good Nameserver A Good: All SOA have the same Serial Number A Good: CAA entries found, creating certificate is limited: letsencrypt.org is allowed to create certificates A Good: CAA entries found, creating certificate is limited: letsencrypt.org is allowed to create wildcard-certificates 4. Content- and Performance-critical Checks http://weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 109.90.30.42 Warning: Not existing ACME-file, but Server sends 200, not 404 or redirect. May be a problem creating a Letsencrypt certificate. Checking /.well-known/acme-challenge/random-filename - a http status 404 - Not Found - is expected. If your server sends content and a http status 200, the validation file (87 bytes, token, dot and the hash of the public part of the account key) may be invisible, so Letsencrypt can't validate your domain. If it is an application that sends this content, perhaps create an exception, so /.well-known/acme-challenge sends raw files. Or create a redirect to another domain and / or port 443, but your Letsencrypt client must support such a solution. Certbot: Use webroot as authenticator - https://certbot.eff.org/docs/using.html Trouble creating a certificate? Use https://community.letsencrypt.org/ to ask. http://www.weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 109.90.30.42 Warning: Not existing ACME-file, but Server sends 200, not 404 or redirect. May be a problem creating a Letsencrypt certificate. Checking /.well-known/acme-challenge/random-filename - a http status 404 - Not Found - is expected. If your server sends content and a http status 200, the validation file (87 bytes, token, dot and the hash of the public part of the account key) may be invisible, so Letsencrypt can't validate your domain. If it is an application that sends this content, perhaps create an exception, so /.well-known/acme-challenge sends raw files. Or create a redirect to another domain and / or port 443, but your Letsencrypt client must support such a solution. Certbot: Use webroot as authenticator - https://certbot.eff.org/docs/using.html Trouble creating a certificate? Use https://community.letsencrypt.org/ to ask. http://weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 2001:470:716e:4f80::11, Status 301 http://weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 109.90.30.42, Status 200 Fatal: Check of /.well-known/acme-challenge/random-filename has different answers checking ipv6 / ipv4. Ipv6 doesn't have the expected result http status 404 - Not Found. Creating a Letsencrypt certificate via http-01 validation may not work. Checking the validation file in /.well-known/acme-challenge Letsencrypt prefers ipv6. Two options: Remove your ipv6 / AAAA DNS entry or (better) fix your ipv6, so your webserver handles ipv6 correct. Perhaps add "Listen [::]:80". Don't use <VirtualHost ip-address:80>, switch to <VirtualHost *:80>. If you use IIS, check your bindings. Don't select a single ip address. Use this tool to check your raw ipv6 address. Add your domain name in the "Hostname" - field. Trouble creating a certificate? Use https://community.letsencrypt.org/ to ask. http://www.weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 2001:470:716e:4f80::11, Status 301 http://www.weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 109.90.30.42, Status 200 Fatal: Check of /.well-known/acme-challenge/random-filename has different answers checking ipv6 / ipv4. Ipv6 doesn't have the expected result http status 404 - Not Found. Creating a Letsencrypt certificate via http-01 validation may not work. Checking the validation file in /.well-known/acme-challenge Letsencrypt prefers ipv6. Two options: Remove your ipv6 / AAAA DNS entry or (better) fix your ipv6, so your webserver handles ipv6 correct. Perhaps add "Listen [::]:80". Don't use <VirtualHost ip-address:80>, switch to <VirtualHost *:80>. If you use IIS, check your bindings. Don't select a single ip address. Use this tool to check your raw ipv6 address. Add your domain name in the "Hostname" - field. Trouble creating a certificate? Use https://community.letsencrypt.org/ to ask. A Good: Every https result with status 200 supports GZip. A Good: No https + http status 200 with inline CSS / JavaScript found A Good: Every https result with status 200 has a minified Html-Content with a quota lower then 110 %. https://next.weik.cloud/login Warning: Https connections (Standard Port 443) found without support of the http/2 protocol via ALPN. Http/2 is the new Http-Version (old: http 1.1) with some important new features. Update your server software so http/2 is available. Only one TCP-connection per Server (that's a performance boost), Header-Compression and Server Pushs are available. Domain Sharding and Inline-CSS/Javascript shouldn't used with http/2. https://weik.cloud/ 109.90.30.42 Warning: Https connections (Standard Port 443) found without support of the http/2 protocol via ALPN. Http/2 is the new Http-Version (old: http 1.1) with some important new features. Update your server software so http/2 is available. Only one TCP-connection per Server (that's a performance boost), Header-Compression and Server Pushs are available. Domain Sharding and Inline-CSS/Javascript shouldn't used with http/2. https://www.weik.cloud/ 109.90.30.42 Warning: Https connections (Standard Port 443) found without support of the http/2 protocol via ALPN. Http/2 is the new Http-Version (old: http 1.1) with some important new features. Update your server software so http/2 is available. Only one TCP-connection per Server (that's a performance boost), Header-Compression and Server Pushs are available. Domain Sharding and Inline-CSS/Javascript shouldn't used with http/2. https://109.90.30.42/ 109.90.30.42 Warning: Https connections (Standard Port 443) found without support of the http/2 protocol via ALPN. Http/2 is the new Http-Version (old: http 1.1) with some important new features. Update your server software so http/2 is available. Only one TCP-connection per Server (that's a performance boost), Header-Compression and Server Pushs are available. Domain Sharding and Inline-CSS/Javascript shouldn't used with http/2. A Good: All script Elements (type text/javascript) and src-Attribute have a defer / async - Attribute. So loading and executing these JavaScripts doesn't block parsing and rendering the Html-Output. Warning: CSS / JavaScript found without GZip support. Send these ressources with GZip. 1 external CSS / JavaScript files without GZip found - 15 with GZip, 16 complete Warning: CSS / JavaScript files with a missing or too short Cache-Control header found. Browsers should cache and re-use these files. 0 external CSS / JavaScript files without Cache-Control-Header, 1 with Cache-Control, but no max-age, 1 with Cache-Control max-age too short (minimum 7 days), 14 with Cache-Control long enough, 16 complete. Warning: Images with a missing or too short Cache-Control header found. Browsers should cache and re-use these files. 0 image files without Cache-Control-Header, 0 with Cache-Control, but no max-age, 1 with Cache-Control max-age too short (minimum 7 days), 0 with Cache-Control long enough, 1 complete. A Good: All checked attribute values are enclosed in quotation marks (" or '). Wrong: img-elements without alt-attribute or empty alt-attribute found. The alt-attribute ("alternative") is required and should describe the img. So Screenreader and search engines are able to use these informations.: 1 img-elements without alt-attribute, 0 img-elements with empty alt-attribute found. A Good: Domainname is not on the "Specially Designated Nationals And Blocked Persons List" (SDN). That's an US-list of individuals and companies owned or controlled by, or acting for or on behalf of, targeted countries. It also lists individuals, groups, and entities, such as terrorists and narcotics traffickers designated under programs that are not country-specific. Collectively, such individuals and companies are called "Specially Designated Nationals" or "SDNs." Their assets are blocked and U.S. persons are generally prohibited from dealing with them. So if a domain name is on that list, it's impossible to create a Letsencrypt certificate with that domain name. Check the list manual - https://www.treasury.gov/resource-center/sanctions/sdn-list/pages/default.aspx http://weik.cloud/ 2001:470:716e:4f80::11 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload; Parse Error - Header can't be parsed http://www.weik.cloud/ 2001:470:716e:4f80::11 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload; Parse Error - Header can't be parsed https://next.weik.cloud/ Strict-Transport-Security: max-age=31536000; includeSubDomains; preload; Parse Error - Header can't be parsed https://weik.cloud/ 2001:470:716e:4f80::11 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload; Parse Error - Header can't be parsed https://next.weik.cloud/login Strict-Transport-Security: max-age=31536000; includeSubDomains; preload; Parse Error - Header can't be parsed https://www.weik.cloud/ 2001:470:716e:4f80::11 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload; Parse Error - Header can't be parsed http://weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 2001:470:716e:4f80::11 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload; Parse Error - Header can't be parsed http://www.weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de 2001:470:716e:4f80::11 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload; Parse Error - Header can't be parsed https://next.weik.cloud/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de Strict-Transport-Security: max-age=31536000; includeSubDomains; preload; Parse Error - Header can't be parsed https://[2001:0470:716e:4f80:0000:0000:0000:0011]/ 2001:470:716e:4f80::11 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload; Parse Error - Header can't be parsed http://weik.cloud/ 2001:470:716e:4f80::11 Warning: HSTS header sent via http has no effect http://www.weik.cloud/ 2001:470:716e:4f80::11 Warning: HSTS header sent via http has no effect A Info: Different Server-Headers found A Duration: 130203 milliseconds, 130.203 seconds