ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ openssl Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°.
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π΄Π»Ρ example.org.
$ DOMAIN="example.org";
echo -n |
openssl s_client
-servername ${DOMAIN}
-connect ${DOMAIN}:443 2>/dev/null |
awk 'BEGIN{RS="---"} /Certificate chain/ {print}' |
awk NF
Certificate chain 0 s:/C=US/ST=California/L=Los Angeles/O=Internet Corporation for Assigned Names and Numbers/OU=Technology/CN=www.example.org i:/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA 1 s:/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA 2 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π΄Π»Ρ letsencrypt.org.
$ DOMAIN="letsencrypt.org";
echo -n |
openssl s_client
-servername ${DOMAIN}
-connect ${DOMAIN}:443 2>/dev/null |
awk 'BEGIN{RS="---"} /Certificate chain/ {print}' |
awk NF
Certificate chain 0 s:/CN=www.letsencrypt.org i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 i:/O=Digital Signature Trust Co./CN=DST Root CA X3
ΠΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Ρ example.org.
$ DOMAIN="example.org";
echo -n |
openssl s_client
-servername ${DOMAIN}
-connect ${DOMAIN}:443
-CApath /etc/ssl/certs/ 2>/dev/null |
awk '/Verify return code:/ {print gensub(/^ */,"","g",$0)}'
Verify return code: 0 (ok)
ΠΠ±ΡΠ°Π·Π΅Ρ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Ρ incomplete-chain.badssl.com.
$ DOMAIN="incomplete-chain.badssl.com";
echo -n |
openssl s_client
-servername ${DOMAIN}
-connect ${DOMAIN}:443
-CApath /etc/ssl/certs/ 2>/dev/null |
awk '/Verify return code:/ {print gensub(/^ */,"","g",$0)}'
Verify return code: 21 (unable to verify the first certificate)