Como identificar a resposta correta sobre o módulo HTTPS
Quando você se depara com uma pergunta desse tipo, o problema não é o conceito em si. É que as bancas adoram misturar termos parecidos para confundir. O módulo HTTPS, no contexto do PHP, tem características bem específicas que todo desenvolvedor precisa dominar.
Assinale a opção correta sobre o módulo https: o que realmente importa saber
O módulo HTTPS está ligado diretamente à extensão OpenSSL do PHP. Se o SSL não estiver habilitado no servidor, simplesmente não funciona, não adianta pedir para o código fazer milagre. Eu já perdi uma manhã inteira caçando um erro de handshake TLS que na verdade era um certificado vencido. O log do Apache dizia "SSL handshake failed" e eu revisei o código três vezes antes de perceber que o certificado tinha expirado na terça-feira. Das opções que geralmente aparecem nessa pergunta, a correta é aquela que menciona a necessidade de uma extensão criptográfica ativa, o uso de certificados SSL/TLS e o fato de que a comunicação passa a ser cifrada entre cliente e servidor. Opções que falam em compressão de dados ou aceleração de query são distrações clássicas. A banca quer ver se você sabe distinguir funcionalidades.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Um detalhe que quase ninguém menciona: o módulo HTTPS por si só não valida certificados automaticamente de forma segura. Você precisa configurar o contexto de stream corretamente, especificando pelo menos o campo verify_peer como true e apontando para um bundle de certificados confiável. Sem isso, sua aplicação pode aceitar conexões com certificados autoassinados sem nenhuma verificação real de autenticidade. No PHP, a função mais comum envolvida é a stream_context_create(), que permite passar um array de opções SSL antes de fazer a requisição. É ali que a maioria dos erros acontece. Eu via gente colocando a chave privada no contexto, quando na verdade o contexto serve para configuração do lado do cliente, não do servidor.
Aqui vai o que eu aprendi na prática: se você está fazendo uma questão de múltipla escolha e veve algo sobre "criptografia simétrica apenas" ou "comunicacão sem necessidade de certificado", descarta. O HTTPS usa uma combinação de criptografia simétrica e assimétrica, e o certificado é obrigatório para o funcionamento correto do protocolo. Outra pegadinha comum é confundir o módulo HTTPS com funções de arquivo. Algo como fopen usando https:// é perfeitamente válido desde que o wrapper ssl tenha sido compilado. Mas se a opção disser que você precisa de uma extensão separada chamada simplesmente "https", isso está errado. A extensão responsável é a openssl, não uma extensão dedicada chamada https.
Para resolver o problema rapidamente, verifique o phpinfo() do seu servidor. Procure pela seção OpenSSL. Se não existir, o módulo HTTPS não está disponível e você vai precisar compilar o PHP com suporte a --with-openssl. Em ambientes de produção, o tempo médio para resolver esse tipo de issue varia de 15 minutos a 2 horas, dependendo se o servidor é compartilhado ou se você tem acesso root. Se a questão apresentar opções sobre portas, o HTTPS usa a 443 por padrão. Isso é consenso. Mas atenção: apenas listar a porta não define o módulo. O módulo é a camada de implementação que interpreta as requisições, faz o handshake e gerencia a sessão cifrada.