OpenSSL jobber med SSL- og TLS -protokollene. Vi vil dekke de forskjellige måtene hvordan du kan bruke OpenSSL S_Client for å teste og bekrefte SSL -tilkoblingene dine.
OpenSSL S_Client Brukseksempler
OpenSSL -verktøysettet tilbyr mange alternativer som du kan spesifisere for å oppnå forskjellige mål.
1. Test tilkoblingen
For å teste din HTTPS -tjenestetilkobling og se den diagnostiske informasjonen relatert til SSL -tilkoblingen til en gitt server inkludert informasjon som sertifikatkjede, må du bruke -koble flagg.
$ OPENSSL S_CLIENT - Connect [YourDomain].com: 443
Vi bruker port 443, da det er foretrukket for sikker HTTP fremfor TLS/SSL. Kommandoens utgang viser grunnleggende detaljer om tilkoblingen du etablerer med serveren.
For eksempel vil vi bruke Kyle.com som serveren.
2. Skriv ut alle sertifikater
SSL -tjenesten presenterer sertifikatkjeder, og du kan vise dem alle, noe som er nyttig når du trenger å feilsøke sertifikatproblemer som feilordningssertifikater.
$ openssl s_client -connect Kyle.com: 443 -howcerts
Utgangen vil vise de forskjellige sertifikatene som gjenspeiles i følgende bilde:
Du kan inspisere hver av sertifikatene som blir returnert av serveren fra utgangen.
3. Sjekk gyldigheten av sertifikatet
Når du har fått en kjede med sertifikater som er returnert av serveren, kan du teste hvor gyldige de er.
$ openssl s_client -connect Kyle.com: 443 -Brief
For å bekrefte gyldigheten, se etter Bekreftelse, og utdataene skal lese “OK”.
De -kort Flagg hjelper til med å begrense utgangen ved å ekskludere noen ordinære detaljer.
I vårt tilfelle bekrefter vi at sertifikatene våre er gyldige.
4. Sjekk dato for utløp av sertifikat
Ved hjelp av OpenSSL S_Client kan du sjekke utløpsdatoene for nettstedets sertifikat fra kommandolinjen. Her må du kombinere to kommandoer som reflektert nedenfor:
$ openssl s_client -connect Kyle.com: 443 2> /dev /null | OpenSSL X509 -NOOUT -DATES
De -Noout Flaget undertrykker kommandoen fra å vise det kodede sertifikatet.
Utgangen viser området når sertifikatene vil utløpe. Som systemadministrator er slike detaljer viktige som du blir kjent med når du trenger å få et nytt sertifikat.
5. Bekreft SSL -tilkoblingen
For å sjekke statusen til SSL -tilkoblingen til serveren din, bruk -verify_return_error flagg.
$ openssl s_client -verify_return_error -Connect Kyle.com: 443
Hvis forbindelsen er vellykket, vil håndtrykket passere. Men hvis du ser feil, betyr det at SSL -håndtrykk har mislyktes og ingen forbindelse kan etableres.
6. Se fingeravtrykket for SSL -sertifikatet
SSL -sertifikater har et fingeravtrykk. Du kan få fingeravtrykket til et sertifikat som vist i følgende:
$ openssl s_client -connect Kyle.com: 443 2> /dev /null | OpenSSL X509 -NOOUT -FINGERPRINT
7. Spesifiser chifferen
Du kan spesifisere hvilken chiffer eller krypteringstype du vil bruke til sertifikatet ved hjelp av -chiffer flagg. For eksempel kan vi spesifisere for å bruke DHE-PSK-AES128-CBC-SHA. Ved å gjøre det, må klientsiden bruke den spesifiserte chifferpakken for tilkobling.
$ openssl s_client -connect Kyle.com: 443 -cipher dhe-psk-aes128-cbc-sha
Du kan se listen over tilgjengelige chiffer ved å bruke følgende kommando:
$ OPENSSL CIPHERS
Utgangen skal se ut som følgende bilde:
8. Spesifiser SSL/TLS -versjonen og chifferene som skal brukes
S_Client forhandler som standard hvilken protokollversjon for SSL/TL å bruke. Likevel kan du spesifisere hvilke versjoner du vil bruke ved hjelp av et av følgende alternativer:
Før du spesifiserer hvilke chiffer du skal bruke, kan du først sjekke de støttede versjonene. I det følgende eksempel vil vi sjekke TLS1_3 versjoner.
Kommandoen er som følger:
$ openssl Ciphers -s -tls1_3
De støttede chifferne er:
Hvis du vil spesifisere en gitt SSL/TLS -versjon for tilkoblingen, trenger du bare å legge den til når du tester forbindelsen din, som i saken nedenfor:
$ openssl s_client -connect Kyle.com: 443 -tls1_3
Hvis du ikke vil bruke en gitt versjon, prepend a Nei_ til navnet. Et eksempel på deaktivering TLS1_1 ville vært NO_TLS1_1. I et slikt tilfelle vil de andre protokollversjonene bli brukt.
9. Send protokollspesifikk melding
OpenSSL støtter forskjellige protokoller, for eksempel FTP, IRC, SMTP, LDAP, POP3, IMAP, etc. Når du trenger å teste tilkoblingen ved hjelp av en spesifikk protokoll eller spesifisere hvilken protokoll du vil bruke for kommunikasjonen, kan du bruke -starttls flagg.
For eksempel, for å teste HFTP -sertifikatet, bruk følgende kommando:
$ openssl s_client -connect Kyle.com: 443 -starttls ftp -servernavn Kyle.com
10. Kontroller vertsnavnet
For å bekrefte vertsnavnet, bruk -verify_hostname. Hvis vertsnavnet ikke stemmer overens, vil du få en bekreftelsesfeilmelding som den nedenfor:
Hvis det er tilfelle, må du få et sertifikat med en SAN eller CN som samsvarer med domenet ditt.
Konklusjon
OpenSSL -verktøysettet har uendelige alternativer som du kan bruke til å betjene ditt behov. Vi har dekket de vanlige, men hovedsiden er din beste ressurs hvis du trenger å utforske mer. Å lære OpenSSL vil gjøre livet ditt enklere når du arbeider med servere og tilkoblinger for eventuelle systemadministrasjonsoppgaver. Derfor må du gjøre et poeng for å praktisere kommandoen.