আমি উইজেট বা অন্য কোনও কমান্ড ব্যবহার করে https://www.google.com থেকে এসএসএল শংসাপত্রটি ডাউনলোড করতে চাই । কোন ইউনিক্স কমান্ড লাইন? বাজেট বা ওপেনসেল?
আমি উইজেট বা অন্য কোনও কমান্ড ব্যবহার করে https://www.google.com থেকে এসএসএল শংসাপত্রটি ডাউনলোড করতে চাই । কোন ইউনিক্স কমান্ড লাইন? বাজেট বা ওপেনসেল?
উত্তর:
শংসাপত্রটি ডাউনলোড করার জন্য, আপনাকে ক্লায়েন্টটি ওপেনসেলের মতো বিল্ট করা প্রয়োজন:
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'
শংসাপত্র চেইন এবং সংযোগের বিশদ সম্পর্কিত তথ্য সরিয়ে দেয়। অন্যান্য কীস্টোরগুলিতে শংসাপত্রটি আমদানির জন্য এটি পছন্দসই বিন্যাস।
-showcerts
সার্ভার / পাতার শংসাপত্রও কি দেখায়? আমি ভেবেছিলাম যখন এটি স্যুইচটি অন্তর্ভুক্ত করা হয়েছিল তখনই এটি কেবল মধ্যস্থতাকে প্রদর্শন করবে।
s_client
সর্বদা সার্ভার শংসাপত্র দেখায় (যদি সেখানে থাকে, তবে সার্ভার হ্যালোকে প্রতিক্রিয়া জানায় এবং একটি বেনামী স্যুট পছন্দ করে না)। প্রাপ্ত সমস্ত শংসাপত্র, সার্ভার শংসাপত্র প্রথমে মধ্যস্থতা এবং / অথবা মূল -showcerts
দেখায় ।
আমি উত্তর খুঁজে পেয়েছি। ওপেনসেল এটি সরবরাহ করে।
ওপেনএসএল এস_ক্লিয়েন্ট-সংযোগ $ EM রেমোস্ট}: $ EM স্মরণিকা}
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
সার্ভারফলট.কোশনস
GNUTLS ক্লায়েন্ট টুল, gnutls-cli
, এছাড়াও এই সহজ করতে পারেন:
gnutls-cli --print-cert www.example.com \
< /dev/null \
> www.example.com.certs
প্রোগ্রামটি সাইটটিতে একটি ইন্টারেক্টিভ ক্লায়েন্ট সরবরাহ করার জন্য ডিজাইন করা হয়েছে, সুতরাং /dev/null
ইন্টারেক্টিভ সেশনটি শেষ করতে আপনাকে খালি ইনপুটটি দিতে হবে (উদাহরণস্বরূপ, থেকে )।
@ বিগনোজ উত্তরের উপর ভিত্তি করে, এখানে একটি স্ব-অন্তর্ভুক্ত সংস্করণ রয়েছে যা ভালভাবে ফিট করে যেমন একটি শেফ রেসিপি:
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
true | openssl s_client -connect google.com:443 2>/dev/null | openssl x509
এই ওপেনসেলটির মোডটি স্টিডিনের প্রত্যাশা করে, তাই আমরা এটির মাধ্যমে এটি সরবরাহ করি true |
, এটি-সংযোগ পরামিতিগুলিতে নির্দিষ্ট করা সার্ভারের সাথে সংযোগ স্থাপন করে। 2>/dev/null
ত্রুটিগুলি স্থির করে (alচ্ছিক), আমরা /dev/stdin
ইনপুট ফাইল হিসাবে শেল পাইপটি ব্যবহার করার জন্য নির্দিষ্ট করে, পুরো আউটপুটটি x509 পার্সারে পার করতে পারি । এবং যে ইচ্ছার আউটপুট মাত্র -----BEGIN CERTIFICATE-----
করার -----END CERTIFICATE-----
অংশ s_client
আউটপুট। > google.com.pem
কমান্ডের শেষে যুক্ত করে আপনি এটি কোনও ফাইলে পুনর্নির্দেশ করতে পারেন ।
সেরা হিসাবে আমি বলতে পারি, এটি শংসাপত্র শৃঙ্খলা যাচাই করে না, এটি কেবল আপনাকে বলতে পারে শেষ সার্ভারটি কী এসএসএল পরিচয় সরবরাহ করে।
x509
ডিফল্টরূপে স্টিডিন পড়ে তাই -in /dev/stdin
অপ্রয়োজনীয় (3) s_client
স্থানীয় বিশ্বাস নোঙ্গর (মূল) এর সার্ভারের শংসাপত্রটি সঠিকভাবে যাচাই করে এবং অপ্রাপ্ত হয়, তবে আপনি এটি দেখায় এমন তথ্যকে দমন করে (4) এটি প্রত্যাহার (4) এটি সার্ভার সার্টে নামটি কেবলমাত্র 1.0.2 এ যাচাই করে এবং তারপরে ডিফল্টরূপে নয় (তবে আপনি সহজেই সার্টিটির দিকে তাকিয়ে এটি পরীক্ষা করে দেখতে পারেন এরপরে)