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:
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.