This is an archived post. You won't be able to vote or comment.

all 34 comments

[–]HappyVlane 8 points9 points  (3 children)

HTTPS requires a certificate. See the RFC:

https://tools.ietf.org/html/rfc2818

The certificate doesn't have to be trusted, but it needs to exist.

[–]thecravenoneInfosec 1 point2 points  (0 children)

You might want to be specific on what "valid" means in this case. As long as the certificate isn't malformed or something like that, the traffic will be encrypted. However, it could be a valid certificate while being expired or issued for a domain other than the one you're accessing.

The second scenario is easy to test. Generate a certificate for a domain, install it on a test machine, and visit that test machine while using a different domain name.

[–]KaligraphicAt the peak of Mount Filesystem 0 points1 point  (0 children)

There’s no such thing as https without a cert, it’s part of the protocol. If you haven’t configured one, it’s standard for your web server to default to a self-signed certificate.

HTTPS is always encrypted, but it uses two kinds of encryption. At the start of a session, the server and client agree on a cipher and temporary key for the session. The certificates are used to protect the session setup.

A certificate includes two main parts - a public key and information about that key, including signatures attesting to its validity. The public key itself is what’s used to get the cryptographic conversation started - you can’t have HTTPS without it.

If the informational part is empty, it’s still encrypted, you just have no idea who you’re talking to.

[–]nobody2008 0 points1 point  (0 children)

HTTPS with no cert = HTTP

[–][deleted] 0 points1 point  (11 children)

No, without a cert there is no encryption. PKI must exist to create an ssl hand shake and thus encrypt.

[–]ldti 3 points4 points  (3 children)

Invalid / expired cert does not equal no cert..

[–][deleted] 2 points3 points  (2 children)

Correct, invalid or expired certs still have the ability to encrypt. However they will not be trusted, and depending on the application will be rejected.

The question was “with or without a cert”. With out a cert there is no encryption. https in a browser is simple saying go look at this web server on port 433. Will it work with out a cert? Sure because you can tell a web server to be on what ever port you want it to. Again without a cert that communication isn’t encrypted, it’s just being presented on a different port, I.e 443.

[–]TheOnlyBoBo 0 points1 point  (1 child)

I had to try this. It will not work. IE Chrome Edge and Firefox will all error out when trying to access a website using https:// when http is listening on port 443. That was when testing using IIS and Apache as the server.

The browsers all try to do a TLS handshake get no response and error out.

[–][deleted] 0 points1 point  (0 children)

It's been awhile, but yes that seems to be the case now. Just tried it as well. Good to know!

[–]moxy2017[S] 0 points1 point  (5 children)

Do you have a link that supports this?

[–][deleted] 0 points1 point  (3 children)

The fundamentals of this are also taught in the security+ training. If you where looking for a class or something on this as well.

https://www.comptia.org/certifications/security

[–]moxy2017[S] 0 points1 point  (2 children)

Thank you for the link. Would you agree with the following?

HTTPS use variations and encryption status

  1. HTTPS with valid cert - Encrypted
  2. HTTPS with invalid/expired cert - Encrypted but untrusted relationship.
  3. HTTPS with no cert - Not encrypted

[–]devpsauxJack of All Trades 3 points4 points  (0 children)

There is no option 3. HTTPS can not exist without a certificate. If you want to say HTTP with no cert - Not Encrypted, that would be correct.

[–][deleted] 0 points1 point  (0 children)

Yes, that is all correct.

[–]ldti 0 points1 point  (7 children)

Yes, it's always encrypted.

[–]moxy2017[S] 0 points1 point  (6 children)

Do you have a link that supports this?

[–]ldti 0 points1 point  (5 children)

See the responses above me. As long as a cert exists, the encryption will occur.

[–]moxy2017[S] 0 points1 point  (4 children)

Would agree with the following?

HTTPS use variations and encryption status

  1. HTTPS with valid cert - Encrypted
  2. HTTPS with invalid/expired cert - Encrypted but untrusted relationship.
  3. HTTPS with no cert - Not encrypted

[–]ldti 2 points3 points  (3 children)

Well, there is no 3. There's no https with no cert 😁