আমি এর সাথে একটি শংসাপত্র যাচাইয়ের ত্রুটি উত্পন্ন করার চেষ্টা করছি openssl s_client
:
$ openssl s_client -crlf -verify 9 \
-CAfile /etc/ssl/certs/TURKTRUST_Certificate_Services_Provider_Root_1.pem \
-starttls smtp -host mx-ha03.web.de -port 25
ওয়েব.ডি সার্ভারের শংসাপত্রটি ডিউশ টেলিকোম সিএ দ্বারা প্রত্যয়িত হয়, তুরস্ক্রাস্ট নয়, সুতরাং উপরের কমান্ডটি ব্যর্থ হওয়া উচিত, তাই না?
তবে এটি রিপোর্ট করেছে:
Verify return code: 0 (ok)
কেন?
আমার অর্থ একটি এনালগ গুনটস-ক্লাইম কমান্ড প্রত্যাশা অনুযায়ী ব্যর্থ হয়েছে:
$ { echo -e 'ehlo example.org\nstarttls' ; sleep 1 } | \
gnutls-cli --starttls --crlf \
--x509cafile /etc/ssl/certs/TURKTRUST_Certificate_Services_Provider_Root_1.pem \
--port 25 mx-ha03.web.de
[..]
*** Verifying server certificate failed...
একটি ক্রসচেক করা, অর্থাত --x509cafile /etc/ssl/certs/ca-certificates.crt
গুনটস-ক্লিমে পরিবর্তে ব্যবহার করে আমি পাই:
[..]
- The hostname in the certificate matches 'mx-ha03.web.de'.
- Peer's certificate is trusted
(যা প্রত্যাশিত)
সিএ-শংসাপত্রের জন্য ওপেনএসএল এস_স্লিভেন্ট প্রিন্টস
Verify return code: 0 (ok)
TURKTRUST হিসাবে একই ফলাফল ...
প্রথমে আমি ওপেনসেলটিকে ডিফল্ট সেটিং -CApath
(যেমন / ইত্যাদি / এসএসএল / সার্টি) ব্যবহার করে সন্দেহ করেছি - তবে আমি যখন strace
প্রক্রিয়া করি তখন আমি কেবলমাত্র open
আর্গুমেন্টের জন্য সিস্কেলটি দেখি CAfile
।
(সমস্ত পরীক্ষাগুলি একটি উবুন্টু 10.04 সার্ভারে সম্পন্ন হয়েছে)
আপডেট: আমি টার্কট্রুস্ট শংসাপত্রটি একটি ফেডোরা 20 সিস্টেমে অনুলিপি করেছি এবং প্রথম ওপেনসেল বিবৃতি কার্যকর করেছি - সেখানে আমি আলাদা ফলাফল পেয়েছি:
Verify return code: 19 (self signed certificate in certificate chain)