Quando se utiliza o protocolo HTTPS, quem criptografa é o software cliente e o software servidor, isto é, navegador e servidor web, usando as informações (certificado e chaves) fornecidas pelo servidor web cuja identidade é confirmada pela entidade certificadora.
Este processo é transparente ao usuário e também ao desenvolvedor web (programador front-end ou back-end).
Os dados são criptografados ao serem empacotados para trafegar na rede, isto é, ao saírem da camada de aplicação para a camada de transporte. E descriptografados novamente ao serem entregues da camada de transporte para a camada de aplicação no destino.
Neste caso então, quem criptografa o que se trafega é o Chrome, Edge, Opera, Firefox, Internet Explorer, Safari, etc. do lado cliente e o Apache, Ngingx, etc. do lado servidor.
Já quando se utiliza o protocolo HTTP (sem S), o navegador e o servidor web não se preocupam em criptografar nada. Se o autor da página quiser, ele deve embutir código no projeto que criptografe as informações antes de irem para a camada de transporte. Teria, por exemplo, que incluir um código Javascript que descriptografasse os dados recebidos de um servidor web e outro no back-end que fizesse os mesmo para os dados recebidos do navegador. Veja que, neste caso, o desenvolvedor é quem deve implementar o processo e se preocupar com o tipo de criptografia a ser usada. O que é muito mais trabalhoso e passível a erros e a quebra de criptografia.
De qualquer modo, esta criptografia adicional, também pode ser aplicada quando se usa https, embora, na maioria dos casos seja desnecessário.