ফায়ারফক্সে সিস্টেম ব্যাপী সার্টিফিকেট কর্তৃপক্ষ যুক্ত করুন


27

আমি কিছু রুট সিএ যুক্ত করতে চাই যা উবুন্টুতে ডিফল্ট ফায়ারফক্সের সাথে আসে না তবে কীভাবে হয় তা আমি জানি না।

আমি তাদের সাথে স্থানীয় শংসাপত্রগুলিতে যুক্ত করার চেষ্টা করেছি certutil, তবে এটি কার্যকর হয়নি। এটি আমার শংসাপত্রের ডেটাবেসগুলিতে গোলমাল করেছে।

$ certutil -A -d .mozilla/firefox/kek3dogy.default/ -i /usr/local/share/ca-certificates/FNMT_ACRAIZ.crt -n "Certificado Raiz FNMT" -t "TCu,Cuw,Tuw"

এবং তারপর

$ certutil -L -d .mozilla/firefox/kek3dogy.default/

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

Go Daddy Secure Certification Authority                      ,,   
VeriSign Class 3 Secure Server CA - G3                       ,,   
VeriSign Class 3 Extended Validation SSL CA                  ,,   
DigiCert High Assurance CA-3                                 ,,   
GlobalSign Domain Validation CA - G2                         ,,   
GeoTrust SSL CA                                              ,,   
StartCom Class 2 Primary Intermediate Server CA              ,,   
Google Internet Authority                                    ,,   
Certificado Raiz FNMT                                        CT,C,c
USERTrust Legacy Secure Server CA                            ,,   
HP Jetdirect 2B0EAD20                                        ,,   
Akamai Subordinate CA 3                                      ,,   
VeriSign, Inc.                                               ,,   
Thawte SGC CA                                                ,,   
VeriSign Class 3 Secure Server CA - G2                       ,,

শংসাপত্রটি ফায়ারফক্সে প্রদর্শিত হবে না। আমি এটি বেশ কয়েকবার চেষ্টা করেছি, এমনকি প্রোফাইল মোছা, এবং এটি ফায়ারফক্স ইন্টারফেসে একবার প্রদর্শিত হয়েছিল, তবে সম্পূর্ণ খালি।

যাইহোক, এটি কেবল একজন ব্যবহারকারীর জন্য এবং আমি সেগুলি সিস্টেম-ব্যাপী যুক্ত করতে চাই। আমি সংশোধন করতে পারি এমন কি সিস্টেম-ব্যাপী ডাটাবেস আছে? কিভাবে?

যদি আমি সংশোধন করতে পারে এমন সিস্টেম-ব্যাপী ডাটাবেস না /etc/X11/Xsession.d/থাকে, /etc/xdg/autostart/সেশন শুরুতে ব্যবহারকারী প্রোফাইলটি পরিবর্তন করতে আমি এক্স স্টার্ট স্ক্রিপ্টের উপর নির্ভর করতে পারি ( বা হিসাবে এক্সডিজি অটোস্টার্ট সিস্টেম দ্বারা পরিচিত একটি স্ক্রিপ্ট ), তবে আমার একটি সমাধান দরকার যা কাজ করে। আমি এখনই কমান্ড লাইন থেকে ব্যবহারকারীর প্রোফাইলে শংসাপত্র লোড করতে পারি না!


ডিফল্ট প্রোফাইলটি সম্পাদনা করা কি একটি বিকল্প (যাতে নতুন প্রোফাইল তৈরি করা হয় তখন নতুন যুক্ত হওয়া শংসাপত্র যুক্ত করা হয়, তবে পুরানো প্রোফাইলগুলি অপরিবর্তিত রেখে দেওয়া হয়)?
Andrea Corbellini

না, প্রায় +100 প্রোফাইল ইতিমধ্যে বিদ্যমান এবং নতুন প্রোফাইলগুলি একটি বিরল জিনিস।
জর্জে সুরেজ ডি লিস

আপনি ফায়ারফক্সের ডিরেক্টরিতে একটি নতুন প্রোফাইল ফোল্ডার তৈরি করতে পারবেন না এবং তারপরে এটি যুক্ত করতে পারবেন profiles.ini? তারপরে আপনি এটিতে আপনার পরিবর্তনগুলি যুক্ত করতে পারেন এবং তারপরে এটি এবং profiles.iniপ্রতিটি ব্যবহারকারীর ডিরেক্টরিতে অনুলিপি করতে পারেন।
উইলফ

এনবি আপনি চালিয়ে ফায়ারফক্সের জন্য প্রোফাইল সম্পাদনা করতে পারেন firefox -p- তবে আপনাকে প্রথমে ফায়ারফক্স বন্ধ করতে হবে।
উইলফ

নাহ, তাদের ইতিমধ্যে বিদ্যমান প্রোফাইল সহ +100 ব্যবহারকারী রয়েছেন। তারা তাদের বুকমার্ক, ইতিহাস, পাসওয়ার্ড ইত্যাদি হারিয়ে ফেলতে পছন্দ করবে না
জর্জি সুরেজ ডি লিস

উত্তর:


20

এখানে সমস্যাটি হ'ল ফায়ারফক্সের কোনও 'কেন্দ্রীয়' অবস্থান নেই যেখানে এটি শংসাপত্রগুলির সন্ধান করে। এটি কেবল বর্তমান প্রোফাইলটি সন্ধান করে। এজন্য পরিবর্তন /usr/share/ca-certificatesবা অন্যান্য অনুরূপ ডিরেক্টরি ফায়ারফক্সের সাথে কাজ করবে না। এটি এমন একটি বিষয় যা বছরের পর বছর ধরে অনুরোধ করা হয়েছিল; সমস্যাগুলি দেখুন 620373 , 449498 এবং 454036 (এবং সম্ভবত সেখানে অনেকে আছে)।

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

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

আপনাকে যা করতে হবে তা হ'ল প্রতিটি প্রোফাইলের জন্য প্রতিটি ফাইল cert8.dbএবং key3.dbফাইলগুলি মুছে ফেলা হয় এবং এগুলিকে "সবচেয়ে সম্পূর্ণ" cert8.dbএবং এর লিঙ্কগুলির সাথে প্রতিস্থাপন করা হয় key3.db। আপনি যদি হার্ডলিঙ্কগুলির সাথে যান তবে আসলটি cert8.dbএবং key3.dbনতুনগুলির থেকে পৃথক হয়ে উঠবে।

আপনার প্রয়োজন মাপসই অনুমতি সামঞ্জস্য করতে ভুলবেন না। সম্ভবত, আপনার প্রয়োজন হবে chmod a+rwযাতে প্রত্যেকে একটি শংসাপত্র যুক্ত করতে / মুছে ফেলতে সক্ষম হয়। আপনি যদি চান যে কেবলমাত্র নির্দিষ্ট ব্যবহারকারীরা শংসাপত্র যুক্ত / সরাতে সক্ষম হন, আপনি একটি গোষ্ঠী তৈরি করতে পারেন, সেই গোষ্ঠীতে দুটি ডাটাবেস বরাদ্দ করতে পারেন এবং +wকেবল গোষ্ঠীকে অনুমতি দিতে পারেন।


হ্যাঁ, আমি যেমন আসতে পেরেছিলাম ঠিক তেমনই। এটি ফায়ারফক্সের জন্য কিছুটা লজ্জার বিষয়, ইমো।
জার্মটভিডিজক

কিন্তু ওভাররাইট হবে না যে ব্যবহারকারীর শংসাপত্র? ব্যবহারকারীর শংসাপত্রগুলি সেখানে সংরক্ষণ করা হয় না?
জর্জি সুরেজ ডি লিস

@ জর্জেসুরজেডিলিস: ভাল, আপনি যখন ফাইলগুলি মুছবেন তখন আপনি শংসাপত্রগুলি আলগা করবেন। যদি "ওভাররাইটিং" বলতে বোঝায় এটিই যদি হয় তবে হ্যাঁ। আপনার প্রথমে সমস্ত ডেটাবেসগুলিকে একটিতে মার্জ করা উচিত এবং তারপরে হার্ডলিঙ্কগুলি তৈরি করা উচিত।
আন্ড্রেয়া কারবেলিনী

তবে ... আমি চাই না একজন ব্যবহারকারীর অন্যের ব্যক্তিগত শংসাপত্র থাকতে হবে! আমি এখন তাদের শংসাপত্রগুলির বিষয়ে কথা বলছি, শংসাপত্র কর্তৃপক্ষকে নয়।
হোর্হে সুরেজ ডি লিস

@ জর্জেসুরেজডিলিস: দুঃখিত, আমি বুঝতে পারি না: ব্যক্তিগত শংসাপত্রগুলি কী কী ?
Andrea Corbellini

15

সবচেয়ে সহজ উপায় হ'ল শংসাপত্রটি একটি নমুনা ফায়ারফক্স-প্রোফাইলে আমদানি করা এবং তারপরে আপনি শংসাপত্রের সাথে সজ্জিত ব্যবহারকারীদের কাছে cert8.db অনুলিপি করেন।

প্রথমে নমুনা-ব্যবহারকারীর ফায়ারফক্স প্রোফাইলে হাতে হাতে শংসাপত্রটি আমদানি করুন। তারপরে অনুলিপি করুন

/home/${USER}/.mozilla/firefox/${randomalphanum}.default/cert8.db

ব্যবহারকারীদের ফায়ারফক্স-প্রোফাইলগুলিতে। এটাই. আপনি যদি তা নিশ্চিত করতে চান তবে নতুন ব্যবহারকারীরা শংসাপত্রটি স্বয়ংক্রিয়ভাবে পান, এতে অনুলিপি cert8.dbকরুন:

/etc/firefox-3.0/profile

এখানে একটি বিকল্প উপায় যা বিদ্যমান শংসাপত্রগুলিকে ওভাররাইড করে না: [লিনাক্স সিস্টেমগুলির জন্য বাশ টুকরা]

certificateFile="MyCa.cert.pem"
certificateName="MyCA Name" 
for certDB in $(find  ~/.mozilla* ~/.thunderbird -name "cert8.db")
do
  certDir=$(dirname ${certDB});
  #log "mozilla certificate" "install '${certificateName}' in ${certDir}"
 certutil -A -n "${certificateName}" -t "TCu,Cuw,Tuw" -i ${certificateFile} -d ${certDir}
done

আপনি libnss3- সরঞ্জাম প্যাকেজে (ডেবিয়ান / উবুন্টু) সার্টিটিল পেতে পারেন।

আরও দেখুন: সিএ শংসাপত্রের প্রোগ্রাম্যাটিক আমদানি

উত্স: প্রোগ্রামিয়ালি মোজিলায় শংসাপত্র ইনস্টল করুন


+1 তবে আপনি যদি এটিকে উজ্জীবিত করেন তবে আপনার সম্ভবত স্ট্যাকওভারফ্লোতে যে উত্তরগুলি থেকে নেওয়া হয়েছিল সেগুলিও উত্তরগুলি উঁচু করে নেওয়া উচিত।
ট্রিপলি

4

জনপ্রিয় বিশ্বাসের বিপরীতে, আপনি ফায়ারফক্সকে তার নিজের হার্ড কোডিং সেট পরিবর্তে সিস্টেমের শংসাপত্রগুলি দেখতে পেতে পারেন

এটি করতে, আপনি পি 11-কিট নামে একটি প্যাকেজ ব্যবহার করতে চান । p11-কিট একটি শর্ট libnssckbi.soলাইব্রেরিতে একটি শর্ট-ইন প্রতিস্থাপন সরবরাহ করে যা শংসাপত্রগুলির হার্ডকোডযুক্ত সেট থাকে। পি 11-কিট সংস্করণ পরিবর্তে সিস্টেম শংসাপত্রের স্টোর থেকে শংসাপত্রগুলি পড়ে।

যেহেতু ফায়ারফক্স এর নিজস্ব সংস্করণ সহ জাহাজ চালিয়ে যাচ্ছে libnssckbi.so, আপনাকে এটি ট্র্যাক করে libnss3 এ দেওয়া সংস্করণের পরিবর্তে এটি প্রতিস্থাপন করতে হবে:

sudo mv /usr/lib/firefox/libnssckbi.so /usr/lib/firefox/libnssckbi.so.bak
sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/firefox/libnssckbi.so

এরপরে, ~/.pkiফায়ারফক্স পুনরায় চালু করার পরে ফায়ারফক্সকে তার শংসাপত্রের ডাটাবেসটি রিফ্রেশ করার জন্য (এটি সিস্টেমের শংসাপত্রগুলিতে টান দেয়) ডিরেক্টরি মুছুন । দ্রষ্টব্য: এটি স্টোরের যে কোনও বিদ্যমান শংসাপত্র মুছে ফেলবে, সুতরাং আপনি যদি ম্যানুয়ালি যোগ করেছেন এমন কাস্টমস থাকে তবে আপনি সেই ফোল্ডারটির ব্যাক আপ নিতে এবং তারপরে পুনরায় আমদানি করতে চাইতে পারেন।


ওহ, বাহ, এটি হ্যাক কিছুটা হলেও +1। আপনি dpkg-divertযখন ফায়ারফক্স প্যাকেজ আপগ্রেড করবেন তখন এপিটি পুনরায় ফাইলের ওভাররাইটিং এড়াতে আপনি একটি পদক্ষেপ যুক্ত করতে চাইতে পারেন ।
জার্মটভিডিজক 20'18

@wheeler। আপনি কি জানেন যে এটি এখনও কাজ করে? আমি এটি উবুন্টু 18.04 দিয়ে চেষ্টা করেছি এবং আমি এই ফায়ারফক্সটি সম্পাদন করার পরে কোনও শংসাপত্রের মোটেও লোড করব না। পি 11-কিটটি 0.23.9-2
কেভিন ভাস্কো

1

সিসিকে উইজার্ড ফায়ারফক্স অ্যাড-অনের অন্যতম বৈশিষ্ট্য হল সিএ শংসাপত্রগুলি আমদানি করা। আমি এই অ্যাড-অনটি একটি কাস্টম অ্যাড-অন তৈরি করতে ব্যবহার করি যাতে একটি সংস্থা সিএ সার্ট অন্তর্ভুক্ত থাকে। আমি তারপরে অভ্যন্তরীণ সংগ্রহস্থলের একটি .deb এ কাস্টম এক্সপিআই প্যাকেজ করি যা সমস্ত ওয়ার্কস্টেশনগুলি আপডেট করে।

সিসিকে উইজার্ড

সম্পাদনা: উবুন্টুর জন্য এক্সপিআই প্যাকেজ করার জন্য আপনাকে একটি প্যাকেজ তৈরি করতে হবে যা / usr / lib / ফায়ারফক্স-অ্যাডনস / এক্সটেনশানস [[অ্যাডন-নাম @ সারওয়ারনেম] ডিরেক্টরি অন্তর্ভুক্ত করবে এবং এক্সপিআইয়ের সম্পূর্ণ বিষয়বস্তু এই ডিরেক্টরিতে আনজিপ করবে । উদাহরণস্বরূপ, আপনি যদি নিজের অ্যাডন ফুবারবাজ এবং আপনার যে সার্ভারটি আপডেট করার জন্য সেট করে থাকেন তার নাম যদি অন্তর্ভুক্ত করা হয় (যদি আপনি সেই ফাংশনটি সক্ষম করতে চান) হয় তবে এটি ডিরেক্টরি foobarbaz@intranet.example.com হবে। আমি কখনই অটো আপডেট সক্ষম করি না, তবে পরিবর্তে রেপোতে ডেব আপডেট করি।


আমি অন্যদের তুলনায় এই পদ্ধতিটি পছন্দ করি কারণ এটি স্বয়ংসম্পূর্ণ এবং এটি এক জায়গায় আরও অনেক টন অন্যান্য স্বনির্ধারণকে অন্তর্ভুক্ত করতে পারে। যদিও লেখক এএমও থেকে তার প্রসারকে সরিয়ে ফেলেছেন বলে মনে হচ্ছে। এখন তার এটি এখানে নিজের সাইটে রয়েছে এবং সর্বশেষ এক্সপিআই এখানে রয়েছে
অমিত নাইডু

1

ফায়ারফক্স একটি পরিষ্কার ইনস্টলেশন পরে কাজ করে। যদি শংসাপত্রের ডাটাবেস cert8.dbমুছে ফেলা হয় তবে এটি পরবর্তী ফায়ারফক্স শুরুতে পুনরায় জেনারেট করা হবে। এটি দৃ strongly়ভাবে প্রস্তাব দেয় যে সিএ সার্টগুলির একটি সিস্টেম-ব্যাপী ডিফল্ট স্টোরেজ রয়েছে।

ফায়ারফক্সের সোর্স কোডটি দেখায় যে অন্তর্নির্মিত সিএ শংসাপত্রগুলি বাস্তবায়িতভাবে হার্ড-কোডড firefox। এগুলি সুরক্ষা / এনএসএস / লিব / সিকেএফডাব্লু / বিল্টিনস / সার্টিটাটা.টিএসটিতে থাকে

তাই সার্টিফিকেট সিস্টেম-ব্যাপী ইনস্টল করার কোনও উপায় নেই। সাবধান থাকুন যে প্যাচিং উত্স কোডটি বৌদ্ধিক সম্পত্তি অধিকার নিয়ে সমস্যা নিয়ে আসতে পারে।


1

আমি একটি "ইউজার এনভায়রনমেন্ট ভার্চুয়ালাইজেশন" (ইউইভি) অ্যাপ্লিকেশন ব্যবহার করছি যা আমার ব্যবহারকারীদের জন্য এটি করে তবে আপনি উইন্ডোজ ক্লায়েন্টগুলিতে লগন স্ক্রিপ্টগুলির সাহায্যে এটি করতে পারেন। আমি% APPDATA% \ Mozilla \ ফায়ারফক্স% প্রোফাইলে% পাথটি গতিশীলভাবে খুঁজে পেতে সমস্ত কোডই পোস্ট করব না, তবে আপনি যখন এটি খুঁজে পান, আপনি কিছু বেসিক কমান্ড ব্যবহার করে স্ক্রিপ্টগুলি আমদানি করতে পারেন। ফায়ারফক্স প্রোফাইল / cert8.db এর পথ নির্ধারণ করতে আমি মূলত ফায়ারফক্স প্রোফাইলস.আইএনআই ফাইলটি পড়ছি।

আপনি certutil.exe অ্যাপ্লিকেশনটি ব্যবহার করতে চাইতে পারেন। https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil

সিস্টেমের সমস্ত ব্যবহারকারীর ফায়ারফক্সে কোনও কেন্দ্রীয় অবস্থান থেকে বিশ্বস্ত শংসাপত্রগুলি স্বয়ংক্রিয়ভাবে আমদানি করে এমন ব্যবহারকারীদের জন্য আপনি লগন স্ক্রিপ্টগুলি চালাতে পারেন।

আমার শংসাপত্র আমদানি vb স্ক্রিপ্টের "মূল" এখানে:

If Instr(strLine,"Path=Profiles/") Then
  arrLine = Split(strLine, "/")
  strProfile = strAppData & "\Mozilla\Firefox\Profiles\" & arrLine(1)
  strCertDB = strProfile & "\cert8.db"

  'Verify the DB exists, if not move to the next entry
  If objFSO.FileExists(strCertDB) Then
    'Run certutil command on this database
    strCertCommand1 = "\\SERVERNAME\SHARENAME$\certs\certutil\certutil.exe -A " &_
    "-n MYCA -t ""CT,C,C"" -d " & strProfile & " -i \\SERVERNAME\SHARENAME$\certs\MYCA_Root.cer"

    strCertCommand2 = "\\SERVERNAME\SHARENAME$\certs\certutil\certutil.exe -A " &_
    "-n MYSECONDCA -t ""CT,C,C"" -d " & strProfile & " -i \\SERVERNAME\SHARENAME$\certs\SecondCA_Root.cer"

    strCertCommand3 = "\\SERVERNAME\SHARENAME$\certs\certutil\certutil.exe -A " &_
    "-n MYTHIRDCA -t ""CT,C,C"" -d " & strProfile & " -i \\SERVERNAME\SHARENAME$\certs\ThirdCA_Root.cer"

    'Run the import commands for this Firefox profile
    objShell.Run("%comspec% /c " & strCertCommand1),0,TRUE
    objShell.Run("%comspec% /c " & strCertCommand2),0,TRUE
    objShell.Run("%comspec% /c " & strCertCommand3),0,TRUE

1

আমি জানতে পেরেছি যে বেশিরভাগ সময় এবং ডিফল্টরূপে কনফিগার না করা হলে অন্যথায় ফায়ারফক্স লেগ্যাসি সুরক্ষা ডেটাবেসগুলি ব্যবহার করে (cert8.db, key3.db, এবং secmod.db) এর অর্থ আপনাকে শংসাপত্রটি ইনজেক্ট করতে আলাদা কমান্ড লাইন ব্যবহার করতে হবে ফায়ারফক্স যে সঠিক ডাটাবেস ব্যবহার করে। (সার্টিটিলের লোকটির কাছ থেকে আরও দেখুন)

সুতরাং যদি আপনার সিস্টেমটি ডিফল্ট ডেটা বেস ব্যবহার করে তবে কমান্ডটি এরকম হবে: (ডিবিএম)

certutil -A -n "Description Name" -t "CT,C,C" -d dbm:/home/<username>/.mozilla/firefox/<default folder>/ -i certificate.crt

অন্যথায় এটি এর মতো হওয়া উচিত: (বর্গ)

certutil -A -n "Description Name" -t "CT,C,C" -d sql:/home/<username>/.mozilla/firefox/<default folder>/ -i certificate.crt

ম্যান সার্টিটিল থেকে:

-d [prefix]directory
Specify the database directory containing the certificate and key
database files.

certutil supports two types of databases: the legacy security databases
(cert8.db, key3.db, and secmod.db) and new SQLite databases (cert9.db,
key4.db, and pkcs11.txt).

NSS recognizes the following prefixes:

·   sql: requests the newer database

·   dbm: requests the legacy database

If no prefix is specified the default type is retrieved from
NSS_DEFAUL

আমার .pem ফাইলগুলি ব্যবহার করে প্রথম certutilকমান্ডটি ব্যবহার করা হয়েছে । আমি একটি একক ব্যবহারকারী সেটআপ স্ক্রিপ্ট স্বয়ংক্রিয়ভাবে সন্ধান করছিলাম এবং এটি কৌশলটি করে। আপনার দরকার apt-get install libnss3-toolsআছে certutil
xypeurC
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.