কীভাবে কার্ল ঠিক করবেন: (60) এসএসএল শংসাপত্র: sudo ব্যবহার করার সময় অবৈধ শংসাপত্র শৃঙ্খলা


12

সুতরাং যেহেতু ম্যাভারিক্স আপগ্রেড কার্লের শংসাপত্রগুলির সাথে আরও সমস্যা রয়েছে।

আমার ওয়েব সার্ভার থেকে এটি স্ব-স্বাক্ষরিত শংসাপত্রের সাথে কোনও ফাইল কার্ল করার চেষ্টা করার সময় এটির ত্রুটিটি পেয়েছিল "এসএসএল শংসাপত্র: অবৈধ শংসাপত্র শৃঙ্খলা"।

এটি আমার সিস্টেম কীচেইনে শংসাপত্র যুক্ত করে এবং এসএসএল, তথ্য এখানে এবং এখানে খুঁজে পেয়েছি সর্বদা অনুমতি দেওয়ার জন্য সেট করে এটি সংশোধন করা হয়েছিল ।

এটি সূক্ষ্মভাবে কাজ করে এবং যখন আমি কোনও ফাইল কার্ল করি তখন এটি সঠিকভাবে ডাউনলোড হয়।

তবে আমি যদি আগে সুডোর সাথে কার্ল চালাই (যেমন আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা সুডো দিয়ে চালানো দরকার এবং এটিতে কার্ল করে) তবে আমি আবার একই ত্রুটি বার্তায় ফিরে আসছি।

আমি অনুমান করছি যে মূলটি সম্ভবত সিস্টেম কীচেন থেকে পড়ে না?

কেউ কি এটিকে ঠিক করার কোনও উপায় জানেন?

উত্তর:


17

f আপনি নিজের সিএ শংসাপত্রগুলি ফাইল সিস্টেমে সংরক্ষণ করেন (পিইএম ফর্ম্যাটে) আপনি এগুলি ব্যবহার করতে কার্লকে বলতে পারেন

sudo curl --cacert /path/to/cacert.pem ...

আপনি এর সাথে শংসাপত্র যাচাইকরণ বন্ধ করতে পারেন

sudo curl --insecure ...

সম্পাদনা: প্রতিক্রিয়া সম্পর্কিত আপডেট

আপনি যদি এটি স্থায়ীভাবে সেট করতে চান তবে আপনার একটি .curlrcফাইল তৈরি করা উচিত এবং আপনার হোম ডিরেক্টরিতে স্থাপন করা উচিত। sudoকমান্ডগুলি এই ফাইলের প্রয়োজন হতে পারে /var/rootফাইলটি কমান্ড লাইনের মতো একই বিকল্পগুলি গ্রহণ করে তবে ড্যাশ ছাড়াই। প্রতি লাইনে একটি বিকল্প:

cacert=/path/to/my/certs.pem

আপনার উত্তরের জন্য ধন্যবাদ, sudo দিয়ে যে স্ক্রিপ্টটি চলছে তা একটি তৃতীয় পক্ষের এবং তাই আমি নিজেই কার্ল কমান্ডটি নিজেই পরিবর্তন করতে পারি না। নিরাপত্তাহীনতা আসলে কোনও বিকল্প নয়। এটি কি বিশ্বব্যাপী করা যায়?
জ্যাকব টমলিনসন

আপনি একটি .curlrc ফাইল তৈরি করতে পারেন এবং এটি আপনার হোম ফোল্ডারে সংরক্ষণ করতে পারেন, যদিও sudo ব্যবহার করার জন্য এটি /var/root/.curlrc হতে পারে। ফাইলটিতে ড্যাশ ছাড়াই বিকল্প থাকতে হবে, প্রতি লাইনে একটি। সুতরাং "ক্যাজারিট = / পথ / থেকে / আমার / সার্টস.পিএম"
ড্যান

1
পরিবর্তে- rootউপলভ্য সেট আপ করার জন্য +1 । এটি ঠিক যেমনটি বলেছে the নেটওয়ার্ক পজিশনে কোনও আক্রমণকারীকে এটি করার জন্য এটি এমআইটিএম এবং ইনজেকশন কোডের কাছে তুচ্ছ। .curlrc--insecure
zigg

এর জন্য ধন্যবাদ, আমি যা খুঁজছি তার মতো শোনাচ্ছে। আমি আগামীকাল এটি চেষ্টা করব এবং যদি এটি কাজ করে তবে অনুগ্রহ করে award
জ্যাকব টমলিনসন

6

রুট বর্তমান ব্যবহারকারীর বিশ্বাস সেটিংস থেকে পড়ে না, তবে প্রশাসক বিশ্বাস সেটিংস এবং রুট-ব্যবহারকারী-নির্দিষ্ট বিশ্বাস সেটিংস উভয়ই রয়েছে। (এগুলি সিস্টেম ট্রাস্টের সেটিংস থেকেও পৃথক ) আপনি কোনও শংসাপত্রটিকে সম্পূর্ণরূপে যোগ না করে বিশ্বাসযোগ্য হিসাবে চিহ্নিত করতে পারেন। (এখানে সঠিক পরিস্থিতি আমার কাছে পরিষ্কার নয় এবং আমি যে দস্তাবেজগুলি দেখেছি তা অস্পষ্ট)

আপনি আপনার বর্তমান ব্যবহারকারীর জন্য বিশ্বাসযোগ্য হিসাবে কোনও শংসাপত্র চিহ্নিত করতে পারেন

$ security add-trusted-cert /path/to/cert.pem

কিন্তু এটি মূলের সাথে সহায়তা করে না। সমাধানটি, আপনি এখন অনুমান হিসাবে, উপরেরটি হয় sudo, যা এটির পরে মূল ব্যবহারকারীকে বিশ্বাসযোগ্য হিসাবে চিহ্নিত করে:

$ sudo security add-trusted-cert /path/to/cert.pem

বা -dপ্রশাসক ট্রাস্ট সেটিংসে এটি যুক্ত করতে পতাকাটি ব্যবহার করতে :

$ security add-trusted-cert -d /path/to/cert.pem

(এটি নিশ্চিত করার জন্য ওএস এক্স একটি পাসওয়ার্ড ডায়ালগ পপ করবে))

উভয় উভয়ই যথেষ্ট বলে মনে হয় sudo curl

তথ্যসূত্র: https://developer.apple.com/library/mac/ ডকুমেন্টেশন / ডারউইন / রেফারেন্স / মানপেজ / মান 1 / সুরক্ষা।


আমি যেমন প্রশ্নে বলেছিলাম আমি সেগুলি ইতিমধ্যে সিস্টেম কীচেনের পাশাপাশি লগইন কীচেইনে যুক্ত করেছি।
জ্যাকব টমলিনসন

আমার পরামর্শ অনুসারে আপনি কি চেষ্টা করেছেন? আপনি যা বর্ণনা করেছেন ঠিক তেমন পরিস্থিতিতে আমি এটি পরীক্ষা করেছি এবং এটি কার্যকর হয়েছে। আমি সমস্ত বিবরণে পরিষ্কার নেই - ডকুমেন্টেশন অস্পষ্ট - তবে আপনার জানা উচিত যে শংসাপত্রের বিশ্বাসের সেটিংসগুলি কেবল একটি কীচেইনে শংসাপত্র যুক্ত করার সাথে যথেষ্ট সমার্থক নয় এবং অ্যাডমিন শংসাপত্রের আস্থা সেটিংস উভয় সিস্টেম থেকে পৃথকভাবে বিদ্যমান এবং ব্যবহারকারীর সেটিংস / কীচেন। (মিশ্রণটিতে ব্যবহারকারীর সেটিংসের মূল-ব্যবহারকারী-নির্দিষ্ট সেটও রয়েছে বলে মনে হয়)) আমি এই উত্তরটি পরিষ্কার করার জন্য আমার উত্তরটি সম্পাদনা করেছি। দয়া করে, এই সমাধান চেষ্টা করুন।
ওয়েস ক্যাম্পেইগনে

হ্যাঁ আমি এই সমাধানটি চেষ্টা করেছিলাম যখন আপনি এটি প্রথম পোস্ট করেছিলেন। শংসাপত্রগুলি সিস্টেম কীচেইনে রয়েছে এবং বিশ্বস্ত হিসাবে সেট করা আছে। এখনও ভাগ্য নেই।
জ্যাকব টমলিনসন

5

এটি আউটপুট ইঙ্গিতটিতে আসলেই রয়েছে:

echo insecure >> ~/.curlrc

উপরের সমাধানটি ব্যবহারের সুবিধা হ'ল এটি সমস্ত curlকমান্ডের জন্য কাজ করে তবে এটি সুপারিশ করা হয় না যেহেতু এটি সুরক্ষিত এবং অবিশ্বস্ত হোস্টগুলির সাথে সংযোগ স্থাপনের মাধ্যমে এমআইটিএম আক্রমণগুলির সূচনা করতে পারে ।


2

আপনি যদি ম্যাকপোর্টস (এবং আপনি উল্লিখিত তৃতীয় পক্ষের স্ক্রিপ্টটি এটিকে সরিয়ে দেয় না $PATHবা কল করেন না /usr/bin/curl) আপনি এই ক্রমে certsyncএবং curlপোর্টগুলি ইনস্টল করতে পারেন ।

certsyncএকটি সরঞ্জাম এবং এটি সম্পর্কিত লঞ্চযুক্ত প্লিস্ট যা আপনার সিস্টেমের কীচেইনে রফতানি করবে এবং একটি সিমিলিংক $prefix/etc/openssl/cert.pemইনস্টল $prefix/share/curl/curl-ca-bundle.crt -> $prefix/etc/openssl/cert.pemকরবে যাতে ম্যাকপোর্টস কার্ল স্বয়ংক্রিয়ভাবে শংসাপত্রগুলি গ্রহণ করবে। certsyncআপনি যখন নিজের সিস্টেম কীচেন পরিবর্তন করবেন তখন উত্পন্ন ফাইলগুলি স্বয়ংক্রিয়ভাবে আপডেট হবে।


এর জন্য ধন্যবাদ, আমি যদি সম্ভব হয় তবে ম্যাকপোর্টগুলি ব্যবহার করা এড়াতে চাই।
জ্যাকব টমলিনসন

0

আপনি যে ডকুমেন্টেশন সন্ধান করছেন তা এখানে। এটি মাভারিকসে সিআরএল কীভাবে ব্যবহার করতে হয় এবং কীভাবে আপনার শংসাপত্র সরবরাহ করতে পারে তা ব্যাখ্যা করে: http://curl.haxx.se/mail/archive-2013-10/0036.html


-1

sudo curlকাজ করার জন্য (ওএসএক্স সিয়েরায়), আমাদের শংসাপত্রটি আমদানি করতে হয়েছিল System.keychainএবং সেখানে এটি বিশ্বাস করতে হবে। এটি কীচেইন অ্যাপ্লিকেশনটিতে বা এই আদেশটি ব্যবহার করে ম্যানুয়ালি করা যেতে পারে:

sudo security add-trusted-cert -d -k /Library/Keychains/System.keychain /path/to/cert.pem

দু'টি নির্দিষ্ট করা -dএবং ম্যানুয়ালি সিস্টেমে কীচইনের পথ নির্ধারণের জন্য গুরুত্বপূর্ণ ছিল -kতা নিশ্চিত করার জন্য যে সত্যিকারের সাইটটি এখনও তা না থাকলে imported

কমান্ডটি ছাড়া কাজ করে sudoতবে তারপরে একটি ইউআই ডায়ালগের মাধ্যমে পাসওয়ার্ড চাইবে, যা স্ক্রিপ্টগুলির জন্য বাধা হতে পারে।


আমি ত্রুটিটি SecCertificateCreateFromData: Unknown format in import.
পেয়েছি

যে কমেছে, দয়া করে জেনে রাখুন যে আমি স্পষ্টভাবে "ওএসএক্স সিয়েরায়" লিখেছি এবং এটি ছিল আমাদের জন্য কার্যকর সমাধান। এটি যদি ওএসএক্সের নতুন সংস্করণগুলিতে কাজ না করে তবে ওএসএক্স সমর্থন বা সরঞ্জামদান পরিবর্তিত হয়েছে। অথবা পূর্ববর্তী মন্তব্যকারীর মতো একটি সমস্যা, যেখানে ইনপুট ফাইলটি কোনও সমর্থিত বিন্যাসে নেই (প্রশ্নটি এটি নির্দিষ্ট করে না)।
আলেকজান্ডার ক্লিমেটসেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.