Везде сказано, что HTTPS начинается с незашифрованного HTTP-запроса CONNECT. Однако, если взять любой броузер и сходить на свой сокет по HTTPS, то можно увидеть, что все броузеры сразу же шлют какие-то бинарные данные. Что все это значит и с чего все-таки начинается HTTPS (SSL/TLS) - соединение?
Возьми openssl, сделай openssl s_client -connect wasm.ru:443 -msg -debug и увидишь всю кухню коннекта ссльного.
Клинет генерирует ключ сессии, потом берёт открытый ключ сервера и спомошью него шифрует ключ сессии и передаёт его на сервер, сервер расшифровывает ключ сессии своим закрытым ключем( асинхронное шифрование ), после чего трафик шифруется ключом сессии. воабще всё намного сложнее, это я так в двух словах. читайте про https в википедии