আপনি কীভাবে উবুন্টুতে একটি শংসাপত্র কর্তৃপক্ষ (সিএ) যুক্ত করবেন?


166

আমার কাজ শংসাপত্রের জন্য অর্থ ব্যয় না করে নিরাপদে আমাদের কাজের বিভিন্ন দিক পরিচালনা করার জন্য তাদের নিজস্ব শংসাপত্র কর্তৃপক্ষ (সিএ) জারির সিদ্ধান্ত নিয়েছে ।

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

তারা আমাকে একটি .pemফাইল পাঠিয়েছে , এবং আমি নিশ্চিত না যে এটি আমার উবুন্টু ইনস্টলে কীভাবে যুক্ত করবেন। প্রেরিত নির্দেশাবলীটি ছিল: "ম্যাকের উপরে এটিতে ডাবল-ক্লিক করলে এটি ইনস্টল করা উচিত।" 

আমি কীভাবে এগিয়ে যাব? আমি সঙ্গে কিছু করতে হবে না দ্বারা OpenSSL একটি তৈরি করতে .key, .csrঅথবা .crtফাইল?


1
মন্তব্য "প্রেরিত নির্দেশাবলী ছিল: a" ম্যাকের উপর এটিতে ডাবল-ক্লিক করা উচিত এটি ইনস্টল করা উচিত \ "" আমার দিনটি তৈরি করেছে
মিজল

উত্তর:


231

সিএ ইনস্টল করা হচ্ছে

আপনার শংসাপত্রটি পিইএম ফর্ম্যাটে (এতে থাকা ফর্ম্যাটটিতে ----BEGIN CERTIFICATE----) অনুলিপি করুন /usr/local/share/ca-certificatesএবং একটি .crtফাইল এক্সটেনশনের সাথে নাম দিন ।

তারপরে দৌড়াও sudo update-ca-certificates

ক্যাভেটস: এই ইনস্টলেশনটি কেবল এই পণ্যগুলিকেই প্রভাবিত করে যা এই শংসাপত্রের দোকান ব্যবহার করে। কিছু পণ্য অন্যান্য শংসাপত্রের দোকান ব্যবহার করতে পারে; আপনি যদি এই পণ্যগুলি ব্যবহার করেন তবে আপনাকে এই সিএ শংসাপত্রটি সেই অন্যান্য শংসাপত্রের দোকানেও যুক্ত করতে হবে। ( ফায়ারফক্স নির্দেশাবলী , ক্রোম নির্দেশাবলী , জাভা নির্দেশাবলী )

সিএ টেস্টিং

আপনি সবেমাত্র যোগ করেছেন এমন শংসাপত্রটি অনুসন্ধান করে এটি কার্যকর হয়েছে কিনা তা যাচাই করতে পারবেন /etc/ssl/certs/ca-certificates.crt(যা আপনার বিশ্বস্ত সিএর সমস্ত একসাথে একত্রিতের দীর্ঘ তালিকা)।

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

$ openssl s_client -connect foo.whatever.com:443 -CApath /etc/ssl/certs

CONNECTED(00000003)
depth=1 C = US, ST = Virginia, O = "Whatever, Inc.", CN = whatever.com, emailAddress = admin@whatever.com
verify return:1
depth=0 C = US, ST = Virginia, L = Arlington, O = "Whatever, Inc.", CN = foo.whatever.com
verify return:1
---
Certificate chain
 0 s:/C=US/ST=Virginia/L=Arlington/O=Whatever, Inc./CN=foo.whatever.com
   i:/C=US/ST=Virginia/O=Whatever, Inc./CN=whatever.com/emailAddress=admin@whatever.com

... snip lots of output ...

    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1392837700
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

প্রথম জিনিসটি সন্ধান করতে হবে আউটপুটটির শীর্ষের কাছে শংসাপত্র চেইন। এটি সিএ ইস্যুকারী হিসাবে (পরবর্তী i:) হিসাবে প্রদর্শিত হবে। এটি আপনাকে বলে যে সার্ভারটি আপনি ইনস্টল করা সিএ স্বাক্ষরিত একটি শংসাপত্র উপস্থাপন করছে।

দ্বিতীয়ত, verify return codeসেট করা হবে শেষে দেখুন 0 (ok)


3
এটি আসলে কাজ করে
সাবরিশ কাকানন

1
ফায়ারফক্স / ক্রোম ডিফল্ট সার্ট স্টোরটি ব্যবহার করে না বলে উল্লেখ করার জন্য ধন্যবাদ।
টিম স্ট্রিজডহর্স্ট

4
নোট করুন যে আপডেট-সিএ-শংসাপত্রগুলি খুব সূক্ষ্ম হতে পারে (সম্ভবত ডিজাইনের মাধ্যমে)। mycert.pem.crt কাজ করেনি, তবে mycert.crt করেছে। আমি আরও মনে করি যে এটি / usr / স্থানীয় / ভাগ / সিএ-শংসাপত্রগুলি হওয়া দরকার / usr / share / ca- শংসাপত্র নয় (যদিও মন্তব্যগুলি /etc/ca-certificates.conf এ বলেছে)।
গোলকধাঁধা

2
crtএক্সটেনশন মন্তব্যের জন্য ধন্যবাদ , এটি আমার কাছে এই কাজটি পাওয়ার রহস্য ছিল, আমাকে একটি certএক্সটেনশন সহ একটি শংসাপত্র দেওয়া হয়েছিল এবং কেন কিছুই কাজ করছে না তা নিয়ে বিভ্রান্ত হয়ে পড়েছিলেন।
মুক্তিপণ ব্রিগেস

3
একটি সতর্কতা: s_clientডিফল্টরূপে এসএনআই প্রেরণ করে না এবং সার্ভারের এসএনআই প্রয়োজন হতে পারে বিশেষত যদি এটি বিভিন্ন সার্টিফিকেট সহ ভার্চুয়াল হোস্ট / সাইটগুলিকে সমর্থন করে; এই ক্ষেত্রে অ্যাড -servername foo.whatever.com। অথবা যদি এটি কোনও ওয়েব সার্ভার ব্যবহার করে (আধুনিক সংস্করণগুলি) curlবা wgetযা স্বয়ংক্রিয়ভাবে এসএনআই করে।
ডেভ_থমপসন_0৮৮

65

ম্যান আপডেট-সিএ-শংসাপত্র :

update-ca-certificates  is  a  program  that  updates   the   directory
/etc/ssl/certs to hold SSL certificates and generates certificates.crt,
a concatenated single-file list of certificates.

It reads the file /etc/ca-certificates.conf. Each line gives a pathname
of  a  CA  certificate  under /usr/share/ca-certificates that should be
trusted.  Lines that begin with "#" are comment lines and thus ignored.
Lines  that  begin with "!" are deselected, causing the deactivation of
the CA certificate in question.

Furthermore   all   certificates   found   below   /usr/local/share/ca-
certificates are also included as implicitly trusted.

উপরের দিক থেকে, আমি অনুমান করব যে বিশ্বস্ত স্টোরটিতে স্থানীয় শংসাপত্রের ফাইলগুলি পাওয়ার সবচেয়ে পছন্দীয় উপায় হ'ল সেগুলিতে ,োকানো /usr/local/share/ca-certificatesএবং তারপরে চালানো update-ca-certificates। আপনার /etc/ssl/certsসরাসরি স্পর্শ করার দরকার নেই ।


23
.Crt এক্সটেনশন সহ শংসাপত্রগুলির নামকরণও প্রয়োজনীয় মনে হয়েছিল।
ফিজোম

@ ফাইজোম নোটটির জন্য ধন্যবাদ - অন্যথায় আমার সার্টটি যুক্ত করতে সক্ষম হত না।
সেয়েরিয়া

--freshএটির কাজ পেতে আমাকে যুক্ত করতে হয়েছিল। যেমনupdate-ca-certificates --fresh
এলিজা লিন

15

আমার একই সমস্যা ছিল, এবং আমাকে .pemফাইলটি অনুলিপি করে অনুলিপি /usr/local/share/ca-certificatesকরতে হয়েছিল .crt.cerফাইল সহজে রূপান্তরিত করা যেতে পারে .pem, OpenSSL সঙ্গে, উদাহরণস্বরূপ, যদি আপনি না .pem

ফাইলটি অনুলিপি করার পরে আপনাকে অবশ্যই সম্পাদন করতে হবে sudo update-ca-certificates


openssl x509 -inform DER -in certificate.cer -out certificate.crt
ওয়েবউর্স্ট

14

সম্পর্কিত অন্যান্য উত্তরগুলি update-ca-certificatesঅ্যাপ্লিকেশনগুলির জন্য সঠিক যা সিস্টেম শংসাপত্রের স্টোর থেকে পড়ে। ক্রোম এবং ফায়ারফক্স এবং সম্ভবত অন্য কারও জন্য, শংসাপত্রটি অবশ্যই মজিলা এনএসএস লাইব্রেরির ব্যাকএন্ড, এনএসএসডিবিতে স্থাপন করতে হবে।

Https://code.google.com/p/chromium/wiki/LinuxCertManagement থেকে :

উদাহরণস্বরূপ, এসএসএল সার্ভার শংসাপত্র জারি করার জন্য একটি রুট সিএ শংসাপত্রকে বিশ্বাস করতে, ব্যবহার করুন

certutil -d sql: OME HOME / .pki / nssdb -A -t "C," -n <শংসাপত্রের ডাকনাম> -আই <শংসাপত্র ফাইলের নাম>

যেখানে <certificate nickname>স্বেচ্ছাচারিত হয় এবং <certificate filename>এটি আপনার .pem বা .crt ফাইল।

অন্যান্য সহায়ক তথ্যসূত্র:


ধন্যবাদ। এটি ক্রোম 53.0.2785.143 এর জন্য উবুন্টু 16.04 তে কাজ করে, তবে ফায়ারফক্স 49 এর পৃথক স্টোর ডিবি রয়েছে বলে মনে হচ্ছে এবং পছন্দগুলি যোগ করা উচিত: পছন্দসমূহ # উন্নত [শংসাপত্র দেখুন] -> [কর্তৃপক্ষ] -> [আমদানি] ফায়ারফক্স সার্টিফিট স্টোর সম্পর্কে আরও More Askubuntu.com/a/248326/535154
mauron85

যাইহোক, আপনি যদি ক্রোমের প্রথম চালানোর আগে সার্টিফিকেট ইনস্টল করতে চান (যেমন। পিকি / ডির এখনও নিখোঁজ রয়েছে), আপনাকে অবশ্যই প্রথমে এনএসডিডিবি তৈরি করতে হবে:mkdir -p $HOME/.pki/nssdb && chmod -R 0700 $HOME/.pki && certutil -d sql:$HOME/.pki/nssdb -N --empty-password
ওকভেল

সিস্টেমের শংসাপত্রের স্টোর থেকে ক্রোম এবং ফায়ারফক্স পড়ার উপায় রয়েছে। আমার উত্তর দেখুন: superuser.com/a/1312419/506107
হুইলারের

11

ডেবিয়ান ভিত্তিক নতুন বিল্ডগুলির জন্য আপনার চালনার দরকার হতে পারে:

sudo dpkg-reconfigure ca-certificates

দ্রষ্টব্য: sudo dpkg-reconfigure সিএ-শংসাপত্রগুলি অভ্যন্তরীণভাবে আপডেট-সিএ-শংসাপত্রগুলি কল করে

আপনার অবশ্যই এর আগে কোনও শংসাপত্রের (.crt ফাইল) অনুলিপি করতে হবে / usr / share / ca- শংসাপত্রগুলিতে এটি করার আগে :)


3

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

libnss3কেবলমাত্র সিএ শংসাপত্রের (পঠনযোগ্য) সেটগুলির সাথে ডিফল্ট জাহাজগুলি libnssckbi.so, তাই বেশিরভাগ সময় আপনাকে সেগুলিতে নিজেই স্থানীয় স্থানীয় বিশ্বাসের স্টোরটিতে নিজেকে যুক্ত করতে হবে $HOME/.pki/nssdbp11-kitএর জন্য একটি ড্রপ-ইন প্রতিস্থাপনের প্রস্তাব দেয় libnssckbi.soযা ইনস্টল থাকা সিস্টেম-প্রশস্ত রুট শংসাপত্রগুলিতে অ্যাডাপ্টার হিসাবে কাজ করে /etc/ssl/certs

সম্পাদনা:

মনে হচ্ছে libnssckbi.soসেখানে কেবলমাত্র বাইরে থাকা ছাড়াও আরও সংস্করণ রয়েছে libnss3। নীচে সেগুলি খুঁজে পেতে, তাদের ব্যাক আপ করার জন্য এবং এগুলির লিঙ্কগুলির সাথে প্রতিস্থাপনের জন্য একটি স্ক্রিপ্ট রয়েছে p11-kit:

sudo apt-get update && sudo apt-get install -y p11-kit libnss3
find / -type f -name "libnssckbi.so" 2>/dev/null | while read line; do
    sudo mv $line ${line}.bak
    sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so $line
done

মূল নির্দেশাবলী:

এটি করতে, ইনস্টল করুন p11-kitএবং libnss3(যদি তারা ইতিমধ্যে অন্তর্নিহিত না হয়):

sudo apt-get update && sudo apt-get install -y p11-kit libnss3

তারপর ব্যাকআপ বিদ্যমান libnssckbi.soদ্বারা উপলব্ধ libnss3:

sudo mv /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so.bak

শেষ পর্যন্ত, প্রতীকী লিঙ্কটি তৈরি করুন:

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

এটি কাজ করেছে তা নিশ্চিত করার জন্য, আপনি চালাতে পারেন ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.soএবং এটি লিঙ্কটি দেখানো উচিত:

lrwxrwxrwx 1 root root 49 Apr  9 20:28 /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so -> /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so

এখন, আপনি যদি সিএ স্টোরটি ব্যবহার করে একটি শংসাপত্র যুক্ত করেন তবে update-ca-certificatesসেই শংসাপত্রগুলি এখন এনএসএস ( libnss3) যেমন ক্রোম ব্যবহার করে অ্যাপ্লিকেশনগুলিতে উপলব্ধ হবে ।


1

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

ফেডোরার মতো অন্যান্য ডিস্ট্রিবিউশনে, এই জাতীয় জিনিস জাস্ট ওয়ার্কস any এবং আপনার যে কোনও অ্যাপ্লিকেশন যা আপনার দ্বারা ইনস্টল করা সিএগুলিতে স্বয়ংক্রিয়ভাবে বিশ্বাস করে না এমন কোনও অ্যাপ্লিকেশনের বিরুদ্ধে আপনার একটি বাগ ফাইল করা উচিত update-ca-trust

আপনি p11-kit-modulesপ্যাকেজটি ইনস্টল করে উবুন্টুতেও এটি ঠিক করতে পারেন এবং তারপরে এনএসএস অন্তর্নির্মিত বিশ্বাসের শিকড়ের মডিউল প্রতিস্থাপন করে p11-kit-trust.soউদাহরণস্বরূপ থেকে একটি প্রতীকী লিঙ্ক তৈরি /usr/lib/firefox/libnssckbi.soকরে/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so

তারপর আপনি হবে সিস্টেমের ট্রাস্ট শিকড় কনফিগার, কিছু হার্ড কোডেড বেশী না পেতে। মনে রাখবেন যে উবুন্টু সেই হার্ড-কোডড আস্থার শিকড় সহ সেই লাইবনেসকবি.স লাইব্রেরির একাধিক ভিন্ন অনুলিপি পাঠায় এবং আপনাকে সেগুলি সমস্ত প্রতিস্থাপন করতে হবে!

cf. https://bugs.launchpad.net/ubuntu/+source/nss/+bug/1647285


আমি যখন করেনি sudo find / -type f -name "libnssckbi.so", এটি পাওয়া libnssckbi.soতিন স্থানে: /usr/lib/thunderbird/, /usr/lib/firefox/, এবং /usr/lib/x86_64-linux-gnu/nss/। সুতরাং আপনি বলছেন যে আমি এই libnssckbi.soতিনটি ফোল্ডার লিঙ্ক করা উচিত p11-kit-trust.so?
হুইলার 0

1
ঠিক আছে, কেবল নিশ্চিত হয়েছে যে লিঙ্কিং /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so-> /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.soএকটি CHARM এর মতো কাজ করেছে। আমি এতে একটি শংসাপত্র যুক্ত করতে সক্ষম হয়েছি /usr/local/share/ca-certificates, চালানো sudo update-ca-certificatesএবং প্রেস্টো, ক্রোম স্ব-স্বাক্ষরিত শংসাপত্রগুলি গ্রহণ করতে শুরু করে।
হুইলার

0

এখানে যোগ করার জন্য মারাত্মকভাবে বোকা উত্তর, তবে আমি লিনাক্সের সার্টিটিলগুলি নিয়ে 2 ঘন্টা পিছনে পিছনে সময় ব্যয় করেছি ... আমি নিশ্চিত যে সবকিছু ঠিক ছিল:

hutber@hutber-mint /var/www/asos-mvt-framework $ certutil -L -d sql:${HOME}/.pki/nssdb

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

anyproxy                                                     CT,, 
rootCA                                                       CT,, 
myasos                                                       CT,, 

কিন্তু এখনও, ক্রোমে কিছুই কাজ করছিল না। আমি সব চেষ্টা করেছি, শেষ পর্যন্ত ...

Restarting Chrome

অনুসরণ করার পরে আমার সাফল্যের মূল চাবিকাঠি ছিল: স্টিভেন সোমবারের পরামর্শ

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