Como usar o OpenSSL S_Client

Como usar o OpenSSL S_Client
Se você é responsável por manter os aplicativos protegidos pelo TLS, é necessário saber como usar o OpenSSL S_CLIENT. Muitos servidores e aplicativos da Web dependem do OpenSSL, uma biblioteca criptográfica, para oferecer proteção criptográfica para garantir sua comunicação pela Internet.

OpenSSL funciona com os protocolos SSL e TLS. Abordaremos as diferentes maneiras de como você pode usar o OpenSSL S_CLIENT para testar e verificar suas conexões SSL.

Exemplos de uso do OpenSSL S_Client

O OpenSSL Toolkit oferece muitas opções que você pode especificar para alcançar diferentes objetivos.

1. Teste a conexão

Para testar sua conectividade de serviço HTTPS e ver as informações de diagnóstico relacionadas à conexão SSL com um determinado servidor, incluindo informações como cadeia de certificados, você precisa usar o -conectar bandeira.

$ OpenSSL S_CLIENT - CONNECT [YOURDOMAIN].com: 443

Estamos usando a porta 443, pois é preferida para HTTP seguro sobre TLS/SSL. A saída do comando exibe detalhes básicos sobre a conexão que você está estabelecendo com o servidor.

Por exemplo, vamos usar Kyle.com como o servidor.

2. Imprima todos os certificados

O SSL Service apresenta cadeias de certificação e você pode exibir todas elas, o que é útil quando você precisa solucionar problemas de certificação, como certificados incorretos.

$ OpenSSL s_client -Connect Kyle.com: 443 -ShowCerts

A saída mostrará os diferentes certificados, conforme refletido na imagem a seguir:

Você pode inspecionar manualmente cada um dos certificados que são retornados pelo servidor da saída.

3. Verifique a validade do certificado

Depois de receber a cadeia de certificados retornados pelo servidor, você pode testar como eles são válidos.

$ OpenSSL s_client -Connect Kyle.com: 443 -Brief

Para confirmar a validade, procure o Verificação, e sua saída deve ler "OK".

O -apresentação A bandeira ajuda a restringir a saída excluindo alguns detalhes detalhados.

No nosso caso, confirmamos que nossos certificados são válidos.

4. Verifique as datas de expiração do certificado

Usando o OpenSSL S_CLIENT, você pode verificar as datas de validade do certificado do site da linha de comando. Aqui, você precisará combinar dois comandos, conforme refletido abaixo:

$ OpenSSL s_client -Connect Kyle.com: 443 2> /dev /null | OpenSSL x509 -Noout -Dates

O -Noout Flag suprime o comando de exibir o certificado codificado.


A saída mostra o intervalo quando os certificados expirarão. Como administrador do sistema, esses detalhes são vitais como você sabe quando você precisa obter um novo certificado.

5. Verifique a conexão SSL

Para verificar o status da conexão SSL ao seu servidor, use o -verifique_return_error bandeira.

$ OpenSSL S_CLIENT -VIFIDADE_RETURN_ERROR -CONECN KYLE.com: 443

Se a conexão for bem -sucedida, o aperto de mão passará. Mas se você vir erros, significa que o aperto de mão SSL falhou e nenhuma conexão pode ser estabelecida.

6. Veja a impressão digital para o certificado SSL

Certificados SSL têm uma impressão digital. Você pode obter a impressão digital de um certificado, como mostrado no seguinte:

$ OpenSSL s_client -Connect Kyle.com: 443 2> /dev /null | OpenSSL X509 -Noout -fingerprint

7. Especifique a cifra

Você pode especificar qual cifra ou tipo de criptografia usar para o certificado usando o -cifra bandeira. Por exemplo, podemos especificar para usar o DHE-PSK-AES128-CBC-SHA. Ao fazer isso, o lado do cliente precisará usar a suíte cifra especificada para conexão.

$ OpenSSL s_client -Connect Kyle.com: 443 -cipher dhe-psk-aes128-cbc-sha

Você pode visualizar a lista de cifras disponíveis usando o seguinte comando:

$ OpenSSL Ciphers

A saída deve parecer semelhante à seguinte imagem:

8. Especifique a versão SSL/TLS e as cifras para usar

O S_CLIENT, por padrão, negocia qual versão do protocolo para SSL/TL para usar. No entanto, você pode especificar quais versões usarem usando uma das seguintes opções:

  1. -SSL2: SSL versão 2
  2. -SSL3: SSL versão 3
  3. -TLS1: TLS versão 1.0
  4. -TLS1_1: TLS versão 1.1
  5. -tls1_2: TLS versão 1.2

Além disso, antes de especificar quais cifras usar, você pode primeiro verificar as versões suportadas. No exemplo seguinte, verificaremos o TLS1_3 versões.

O comando é o seguinte:

$ OpenSSL Ciphers -s -tls1_3

As cifras suportadas são:

Se você deseja especificar uma determinada versão SSL/TLS para a conexão, você só precisa adicioná -la ao testar sua conexão, como no caso abaixo:

$ OpenSSL s_client -Connect Kyle.com: 443 -tls1_3

Se você não quiser usar uma determinada versão, prenda um não_ para o nome. Um exemplo de desativar TLS1_1 seria NO_TLS1_1. Nesse caso, as outras versões de protocolo serão usadas.

9. Enviar mensagem específica do protocolo

O OpenSSL suporta diferentes protocolos, como FTP, IRC, SMTP, LDAP, POP3, IMAP, etc. Quando você precisa testar a conexão usando um protocolo específico ou especificar qual protocolo usar para a comunicação, você pode usar o -StartTls bandeira.

Por exemplo, para testar o certificado HFTP, use o seguinte comando:

$ OpenSSL s_client -Connect Kyle.com: 443 -starttls ftp -ervername kyle.com

10. Verifique o nome do host

Para verificar o nome do host, use o -verifique_hostname. Se o nome do host não corresponder, você receberá uma mensagem de erro de verificação como a abaixo:

Se for esse o caso, você precisa obter um certificado com um SAN ou CN que corresponda ao seu domínio.

Conclusão

O kit de ferramentas OpenSSL tem inúmeras opções que você pode usar para atender à sua necessidade. Cobrimos os comuns, mas a página principal é o seu melhor recurso se você precisar explorar mais. Aprender o OpenSSL facilitará sua vida ao lidar com servidores e conexões para qualquer tarefa de administração do sistema. Portanto, faça questão de praticar o comando.