PHP - Funções OpenSSL

O que é OpenSSL?

OpenSSL é um módulo de código aberto gratuito que se destina a cuidar das comunicações que ocorrem em redes de computadores. OpenSSL é uma ferramenta para os protocolos Transport Layer Security (TLS) e Secure Sockets Layer (SSL).

O que é um certificado SSL?

Um Secure Sockets Layer, isto é, SSL é usado pelo site. O certificado SSL se encarrega de proteger os dados entre dois computadores usando a criptografia. Os dois computadores envolvidos podem ser o compartilhamento de dados entre cliente e servidor. Quando você compartilha dados como senha, detalhes de cartão de crédito, endereço residencial, número de segurança social, deve ser protegido e o mesmo é cuidado pelo certificado SSL. Os certificados SSL garantem que a identidade de ambos os computadores envolvidos seja autenticada para uma conexão segura.

Instalação OpenSSL em PHP

O módulo OpenSSL é adicionado por padrão ao PHP. Você pode ativar o mesmo removendo o (;) ; extension = php_openssl.dll adicionado no início da extensão em php.ini. Depois reinicie o apache e para confirmar se as alterações estão refletindo salve o código abaixo como .php e execute o .php no navegador.

<?php
   phpinfo();
?>
Você deve ver o openssl ativado no navegador conforme mostrado abaixo:

Configuração OpenSSL

O openssl.cnf é o arquivo de configuração e tem toda a configuração padrão necessária para o openssl funcionar. Para executar o openssl, a primeira coisa é que o php tentará localizar o arquivo de configuração. Para obter o mesmo, você terá que adicionar a pasta php ao variável de ambiente.

Se você for usuário do Windows, siga estas etapas para configurar a variável de ambiente para a pasta php:

1. Clique com o botão direito em Meu Computador e vá para Propriedades.

2. Vá para Configurações avançadas do sistema.

3. Clique no botão 'Variáveis ​​de ambiente'.

4. Edite a variável de caminho e clique no botão Editar.

5. Agora adicione o caminho da pasta Php no final. Estou usando o xampp, então minha pasta php é C: \ xampp \ php;

6. Uma vez concluído, clique no botão OK.

7.Agora abra seu prompt de comando e digite o comando: openssl version -a.

C:\Windows\system32>openssl version -a
OpenSSL 1.0.2l  25 May 2017
built on: reproducible build, date unspecified
platform: mingw64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,2,long) idea(int) blowfish(idx)
compiler: x86_64-w64-mingw32-gcc -I. -I.. -I../include  -D_WINDLL -DOPENSSL_PIC
-DOPENSSL_THREADS -D_MT -DDSO_WIN32 -static-libgcc -DL_ENDIAN -O3 -Wall -DWIN32_
LEAN_AND_MEAN -DUNICODE -D_UNICODE -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DO
PENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSH
A512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
 -DECP_NISTZ256_ASM
OPENSSLDIR: "/etc/ssl"

Agora o php será capaz de localizar o arquivo de configuração openssl.cnf.

Funções OpenSSL

A tabela a seguir lista todas as funções relacionadas ao PHP OpenSSL. Aqui, a versão da coluna indica a versão mais antiga do PHP que suporta a função.
Sr. Não Descrição da função Versão
1 openssl_pkey_new ()

Retorna um identificador de recurso que tem um novo par de chaves pública e privada

5.0.0
2 openssl_pkey_get_private ()

Retorna a chave privada

5.0.0
3 openssl_pkey_get_public ()

Retorna a chave pública

5.0.0
4 openssl_ pkey_ export_ to_ file ()

Exporta a chave para um arquivo

5.0.0
5 openssl_private_encrypt ()

Criptografa os dados com a chave privada

5.0.0
6 openssl_public_encrypt ()

Criptografa os dados com chave pública

5.0.0
7 openssl_public_decrypt ()

Descriptografa os dados com a chave pública

5.0.0
8 openssl_private_decrypt ()

Descriptografa os dados com a chave privada

5.0.0