මට ssl සහතිකය බාගත කිරීමට අවශ්යයි, https://www.google.com , wget හෝ වෙනත් විධානයන් භාවිතා කරමින්. යුනික්ස් විධාන රේඛාවක් තිබේද? wget හෝ openssl?
මට ssl සහතිකය බාගත කිරීමට අවශ්යයි, https://www.google.com , wget හෝ වෙනත් විධානයන් භාවිතා කරමින්. යුනික්ස් විධාන රේඛාවක් තිබේද? wget හෝ openssl?
Answers:
සහතිකය බාගත කිරීම සඳහා, ඔබ ඕපන්සල් හි ගොඩනගා ඇති සේවාදායකයා භාවිතා කළ යුතුය:
echo -n | openssl s_client -connect HOST:PORTNUMBER \
| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/$SERVERNAME.cert
එමඟින් සහතිකය සුරකිනු ඇත /tmp/$SERVERNAME.cert
.
-showcerts
දාමයේ ඇති සියලුම සහතික බාගත කිරීමට අවශ්ය නම් ඔබට භාවිතා කළ හැකිය . නමුත් ඔබට සේවාදායක සහතිකය බාගත කිරීමට අවශ්ය නම්, සඳහන් කිරීමට අවශ්ය නැත-showcerts
echo -n
සේවාදායකයාට ප්රතිචාරයක් ලබා දෙන අතර එමඟින් සම්බන්ධතාවය මුදා හරිනු ලැබේ
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
සහතික දාමය සහ සම්බන්ධතා තොරතුරු පිළිබඳ තොරතුරු ඉවත් කරයි. සහතිකය වෙනත් යතුරු ගබඩාවලට ආනයනය කිරීමට වඩාත් කැමති ආකෘතිය මෙයයි.
sed
විධානයට කෙටි විකල්පයක් වේ openssl x509
. කිසිදු අතිරේක තර්ක තොරව, stdin සිට පෙම්-ආකෘතිකරණය Cert ලිවීම් හා කියවීම් අතර නෑ ඕනෑම දෙයක් නොසලකා හරිමින්, පෙම් ආකෘතියෙන් නැවත stdout එය මුද්රණය -BEGIN CERTIFICATE-
හා -END CERTIFICATE-
මාර්ග.
-proxy
(උදා -proxy 127.0.0.1:3000
) විකල්පය සමඟ ප්රොක්සි සඳහා සහය දක්වයි .
මම පිළිතුර සොයාගත්තා. Openssl එය සපයයි.
openssl s_client -connect $ {REMHOST}: $ {REMPORT}
openssl x509 -text <<EOF cert-text EOF
, මෙම සහතිකය විස්තර දැන ගැනීමට
sudo rm -f cert.pem && sudo echo -n | openssl s_client -connect localhost:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ./cert.pem
අනුග්රහය serverfault.com/questions/139728/…
මෙම GNUTLS සේවාදායකයා මෙවලම, gnutls-cli
ද එය පහසු කළ හැක:
gnutls-cli --print-cert www.example.com \
< /dev/null \
> www.example.com.certs
වැඩසටහන සැලසුම් කර ඇත්තේ වෙබ් අඩවියට අන්තර්ක්රියාකාරී සේවාදායකයකු සැපයීම සඳහා වන අතර, එබැවින් /dev/null
අන්තර්ක්රියාකාරී සැසිය අවසන් කිරීම සඳහා ඔබට එය හිස් ආදානය (මෙම උදාහරණයේ සිට ) ලබා දිය යුතුය.
true | openssl s_client -connect google.com:443 2>/dev/null | openssl x509
මෙම opensl මාදිලිය stdin අපේක්ෂා කරයි, එබැවින් අපි එය හරහා සපයන්නෙමු true |
, මෙය -connect පරාමිතියේ නිශ්චිතව දක්වා ඇති සේවාදායකයට සම්බන්ධ වේ. 2>/dev/null
දෝෂ නිශ්ශබ්ද කරයි (අත්යවශ්ය නොවේ), අපට සම්පූර්ණ ප්රතිදානය x509 විග්රහයට යැවිය /dev/stdin
හැකිය, ආදාන ගොනුව ලෙස ෂෙල් පයිප්ප භාවිතා කිරීමට නියම කරයි. ඒ කැමැත්ත ප්රතිදානය පමණක් -----BEGIN CERTIFICATE-----
කිරීමට -----END CERTIFICATE-----
එම කොටසක් s_client
ප්රතිදානය. > google.com.pem
විධානයේ අවසානයට එකතු කිරීමෙන් ඔබට එය ගොනුවකට හරවා යැවිය හැකිය .
මට කිව හැකි හොඳම පරිදි, මෙය සහතික දාමය සත්යාපනය නොකරයි, එයට ඔබට පැවසිය හැක්කේ අවසාන සේවාදායකය සපයන එස්එස්එල් අනන්යතාවය පමණි.
x509
පෙරනිමියෙන් stdin කියවන බැවින් -in /dev/stdin
අතිරික්ත වේ (3) s_client
සේවාදායක සහතිකය නිවැරදිව දේශීය විශ්වාසනීය නැංගුරමකට (මූලයට) දම්වැල් කර ඇති බව සනාථ කරයි. මෙය පෙන්වන තොරතුරු යටපත් කර ඇත (4) එය අවලංගු කිරීමක් සඳහා පරීක්ෂා නොකරයි (5) එය සේවාදායක සහතිකයේ නම 1.0.2 දී පමණක් පරික්ෂා කරයි, පසුව පෙරනිමියෙන් නොවේ (නමුත් සහතිකය දෙස බැලීමෙන් ඔබට එය පහසුවෙන්ම පරීක්ෂා කළ හැකිය. පසුව)
gnutls-cli
මගේ අත්දැකීම් අනුව සියලුම සහතික ලබා දී ඇති බව පෙන්නුම් කරයි, opensl ද එසේ කරනු ඇතැයි මම බලාපොරොත්තු වෙමි. බහුවිධ සහතික හැසිරවීමේදී එය ව්යාකූල විය හැකිය, ඔබට පයිතන් තිබේ නම්, මට මෙහි x509- ලෝඩරයක්
@ බිග්නෝස් පිළිතුර මත පදනම්ව, මෙන්න ස්වයං අන්තර්ගත අනුවාදයක් වන අතර එය හොඳින් ගැලපේ. උදා: සූපවේදී වට්ටෝරුව:
sudo apt-get install gnutls-bin
gnutls-cli --print-cert myserver.com </dev/null| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > myserver.crt
sudo cp myserver.crt /usr/local/share/ca-certificates/myserver.crt
sudo update-ca-certificates