certutil: ফাংশন ব্যর্থ হয়েছে: সুরক্ষা গ্রন্থাগার: খারাপ ডাটাবেস


10

যখন আমি certutilএটি ব্যবহার করি তখন এই ত্রুটিটি ফিরে আসে:certutil: function failed: security library: bad database.

যেমন আমি শংসাপত্র বা কীগুলি তালিকাভুক্ত করতে পারি না

আমি এটা কিভাবে ঠিক করবো?

উত্তর:


23

যদি এটি নতুন সিস্টেম হয় তবে আপনার শংসাপত্রের ডাটাবেসটি আরম্ভ করা হবে না। এটি ঠিক করতে, সঞ্চালন করুন:

mkdir -p $HOME/.pki/nssdb
certutil -d $HOME/.pki/nssdb -N

2
আপনি যদি শংসাপত্রের ডাটাবেসে কোনও পাসওয়ার্ড না চান, কমান্ডের --empty-passwordশেষে স্যুইচটি যুক্ত করুন certutil
বেন জনসন

আমি দেখতে পেলাম যে আমি পরিবর্তে ছুটে এসেছি: certutil -d sql:$HOME/.pki/nssdb -Lএটির ফলে ত্রুটি হবে না। তবে আমি যদি এটি চালাই তবে certutil -Lএটি ত্রুটিটি দেখায়। এর অর্থ কি ডাটাবেসটি দুর্নীতিগ্রস্থ নয়, তবে কিছু অসম্পূর্ণতা রয়েছে বা সার্টুইটিল ভুল ডিরেক্টরিটি প্রত্যাশা করে?
সিএমসিডিগ্রাগনকাই

3

ইতিমধ্যে ডাটাবেস সূচনা করা হয়েছে, তবে এখনও দুর্নীতিগ্রস্থ হলে তা পুনরায় তৈরি করতে হবে:

$ mv ~/.pki/nssdb ~/.pki/nssdb.corrupted
$ mkdir ~/.pki/nssdb
$ chmod 700 ~/.pki/nssdb
$ certutil -d sql:$HOME/.pki/nssdb -N

ঠিক আছে কিনা কাজ করে দেখুন

$ certutil -d sql:$HOME/.pki/nssdb -L
Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

শংসাপত্র আমদানি করুন

$ certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n GoAgent -i ~/programs/goagent/local/CA.crt

ডেবিয়ান আমার ব্রাউজারগুলিতে (ক্রোম এবং আইসওয়েজেল) লিবিজিএনউটিএলএসের শেষ আপডেটটি খুলতে ব্যর্থ হয়েছিল। কনসোলে আমি পেয়েছি [5284:5310:0306/110217:ERROR:nss_util.cc(750)] After loading Root Certs, loaded==false: NSS error code: -8018এবং এটিকে সুন্দরভাবে সমাধান করার কোনও উপায় নেই। ডিবি পুনর্নির্মাণ আমার জন্য এটি সমাধান! আপনাকে অনেক ধন্যবাদ :)
পিড

আমি ডিবিটিকে পুনর্নির্মাণ করতে এবং তার পরে শংসাপত্রগুলির তালিকা তৈরি করতে সক্ষম হয়েছি, তবে আমার আমদানি ত্রুটি সহ এখনও ব্যর্থ হচ্ছে: certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.আমার আমদানি আদেশটি certutil -d sql:$HOME/.pki/nssb -A -t "CT,C,C" -n sophos -i ~/Downloads/sophos_cert.crtএটি কি রুট হিসাবে চালানো উচিত নয়, তাই না?
গিলফিশ

2

আপনি যদি কোনও নির্দিষ্ট ফোল্ডার থেকে শংসাপত্রগুলি প্রদর্শন করতে চান (উদাহরণস্বরূপ, ফোল্ডার যা cert8.dbফায়ারফক্সের জন্য ফাইল সংরক্ষণ করে), আপনাকে "-d" দিয়ে ফোল্ডারটি নির্দিষ্ট করতে হবে:

nss-certutil -d /Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default -L

অন্যথায়, ফোল্ডার nss-certutilথেকে * .db ফাইলগুলি পড়ার ~/.netscapeবা $HOME/.pki/nssdbপূর্ববর্তী ব্যবহারকারী হিসাবে উল্লেখ করা যেতে পারে।


1

-dডিরেক্টরি পথটিও (ডিরেক্টরিটি নির্দেশ করতে হবে) পরীক্ষা করে দেখুন কোনও স্থান আছে কিনা। স্থান সহ এটি একই ত্রুটি বা খারাপ ফাইল ফর্ম্যাট ত্রুটি দেয় - পুরাতন ডাটাবেস ফর্ম্যাট ইত্যাদি Mac বিশেষত ম্যাকের ফোল্ডারে "Application Support"স্থান রয়েছে। সুতরাং পথটি সম্পূর্ণরূপে উদ্ধৃত করুন:

"/Users/myuser/Library/Application Support/Firefox/Profiles/jii912uh.default"

অথবা \ পালানোর চরিত্রটি যুক্ত করুন।

 /Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default

এবং ফোল্ডারে নিম্নলিখিত ফাইল রয়েছে তা পরীক্ষা করুন, cert8.db, key3.db and secmob.db.


0

আমার ক্ষেত্রে আমি এই সমাধানটি ব্যবহার করে সমস্যার সমাধান করেছি (উইন্ডোজ এক্সপি, এনএসএস 3.15.1):

cd /dir/with/database
C:/full/path/to/certutil.exe -L -d .

2
এটি দুর্দান্ত, তবে প্রশ্নটি সেন্টোসকে নির্দিষ্ট করে।
ম্যাডহ্যাটার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.