सवाल आप उबंटू को प्रमाणपत्र प्राधिकरण (सीए) कैसे जोड़ते हैं?


मेरे काम ने अपना खुद का मुद्दा तय करने का फैसला किया है प्रमाणपत्र अधिकार (सीए) प्रमाण पत्र के भुगतान के बिना सुरक्षित रूप से हमारे काम के विभिन्न पहलुओं को संभालने के लिए।

  • क्रिप्टोग्राफिक ईमेल पर हस्ताक्षर करें
  • ईमेल सामग्री एन्क्रिप्ट करें
  • कंपनी की तरह चीजों तक पहुंच बनाओ आईआरसी ग्राहक प्रमाण पत्र आधारित।
  • स्वचालित रूप से पूर्व कर्मचारियों की चाबियाँ रद्द करें

उन्होंने मुझे एक भेजा .pem फ़ाइल, और मुझे यकीन नहीं है कि इसे अपने उबंटू इंस्टॉल में कैसे जोड़ना है। भेजे गए निर्देश थे: "मैक पर इसे डबल-क्लिक करना इसे इंस्टॉल करना चाहिए।"

मैं कैसे आगे बढ़ूं? क्या मुझे कुछ करने की ज़रूरत है OpenSSL बनाने के लिए .key, .csr, या .crt फाइल?


137
2018-06-15 16:14


मूल




जवाब:


एक सीए स्थापित करना

अपने प्रमाणपत्र को पीईएम प्रारूप में कॉपी करें (प्रारूप जिसमें है ----BEGIN CERTIFICATE---- इसमें) /usr/local/share/ca-certificates और इसे एक के साथ नाम दें .crt दस्तावेज़ विस्तारण।

फिर भागो sudo update-ca-certificates

चेतावनियां: यह स्थापना केवल उन उत्पादों को प्रभावित करती है जो इस प्रमाणपत्र स्टोर का उपयोग करते हैं। कुछ उत्पाद अन्य प्रमाणपत्र स्टोर का उपयोग कर सकते हैं; यदि आप उन उत्पादों का उपयोग करते हैं, तो आपको यह सीए प्रमाणपत्र भी उन अन्य प्रमाणपत्र स्टोरों में जोड़ना होगा। (फ़ायरफ़ॉक्स निर्देश, क्रोम निर्देश, जावा निर्देश)

सीए का परीक्षण

आप यह सत्यापित कर सकते हैं कि यह आपके द्वारा अभी जोड़े गए प्रमाणपत्र की तलाश करके काम करता है या नहीं /etc/ssl/certs/ca-certificates.crt (जो आपके सभी भरोसेमंद सीए के साथ मिलकर एक साथ एक लंबी सूची है)।

आप किसी ऐसे सर्वर से कनेक्ट करने का प्रयास करके OpenSSL के s_client का भी उपयोग कर सकते हैं, जिसे आप जानते हैं कि आपके द्वारा अभी इंस्टॉल किए गए CA द्वारा हस्ताक्षरित प्रमाणपत्र का उपयोग कर रहा है।

$ 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)


186
2018-02-19 19:13



यह वास्तव में काम करता है - Sabareesh Kkanan
यह नोट करने के लिए धन्यवाद कि फ़ायरफ़ॉक्स / क्रोम डिफ़ॉल्ट प्रमाणपत्र स्टोर का उपयोग नहीं करते हैं। - shokora
ध्यान दें कि अद्यतन-सीए-प्रमाणपत्र बहुत ही जटिल हो सकते हैं (शायद डिजाइन द्वारा)। mycert.pem.crt काम नहीं किया, लेकिन mycert.crt किया। मुझे यह भी लगता है कि इसे / usr / local / share / ca-certificates, / usr / share / ca-certificates (/etc/ca-certificates.conf में दी गई टिप्पणियों के बावजूद) होने की आवश्यकता है। - labyrinth
के लिए धन्यवाद crt विस्तार टिप्पणी, यह मेरे लिए यह काम प्राप्त करने का रहस्य था, मुझे एक प्रमाणपत्र दिया गया था cert विस्तार और भ्रमित था कि क्यों कुछ भी काम नहीं कर रहा था। - Ransom Briggs
एक चेतावनी: s_client डिफ़ॉल्ट रूप से एसएनआई नहीं भेजता है और सर्वर को एसएनआई की आवश्यकता हो सकती है, खासकर यदि यह वर्चुअल होस्ट / साइट्स को अलग-अलग कॉर्ट के साथ समर्थन देती है; इस मामले के लिए जोड़ें -servername foo.whatever.com। या अगर यह एक है वेब सर्वर का उपयोग (के आधुनिक संस्करण) curl या wget जो स्वचालित रूप से एसएनआई करते हैं। - dave_thompson_085


मैन अपडेट-सीए-सर्टिफिकेट्स:

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 सीधे।


56
2018-06-15 18:07



.Crt एक्सटेंशन के साथ प्रमाणपत्रों का नामकरण भी आवश्यक था। - phyzome
नोट @phyzome के लिए धन्यवाद - अन्यथा मेरा प्रमाण जोड़ने में सक्षम नहीं होता। - Seiyria


मुझे एक ही समस्या थी, और मुझे इसकी प्रतिलिपि बनाना पड़ा .pem फ़ाइल करने के लिए /usr/local/share/ca-certificates, इसे नामकरण के रूप में .crt.cer फ़ाइल को आसानी से परिवर्तित किया जा सकता है .pem, openssl के साथ, उदाहरण के लिए, यदि आपके पास नहीं है .pem

फ़ाइल की प्रतिलिपि बनाने के बाद आपको निष्पादित करना होगा sudo update-ca-certificates


15
2018-04-30 13:39



openssl x509 -inform DER -in certificate.cer -out certificate.crt - webwurst


संबंधित अन्य जवाब update-ca-certificates सिस्टम प्रमाणपत्र स्टोर से पढ़ने वाले अनुप्रयोगों के लिए सही हैं। क्रोम और फ़ायरफ़ॉक्स के लिए, और शायद कुछ अन्य, प्रमाण पत्र nssdb में रखा जाना चाहिए, मोज़िला एनएसएस पुस्तकालय के लिए बैकएंड।

से https://code.google.com/p/chromium/wiki/LinuxCertManagement:

उदाहरण के लिए, एसएसएल सर्वर प्रमाणपत्र जारी करने के लिए रूट सीए प्रमाणपत्र पर भरोसा करने के लिए, उपयोग करें

certutil -d sql: $ HOME / .pki / nssdb -A -t "सी," -n <प्रमाणपत्र उपनाम> -i <प्रमाणपत्र फ़ाइल नाम>

कहा पे <certificate nickname> मनमाने ढंग से है, और <certificate filename> आपकी .pem या .crt फ़ाइल है।

अन्य उपयोगी संदर्भ:


12
2017-10-10 18:46



धन्यवाद। यह क्रोम 53.0.2785.143 के लिए उबंटू 16.04 पर काम करता है, लेकिन फ़ायरफ़ॉक्स 49 में अलग-अलग स्टोर डीबी लगता है और इसे इसके बारे में जोड़ा जाना चाहिए: प्राथमिकताएं # उन्नत [देखें प्रमाणित] -> [प्राधिकरण] -> [आयात] फ़ायरफ़ॉक्स प्रमाणपत्र स्टोर के बारे में अधिक जानकारी। askubuntu.com/a/248326/535154 - mauron85
वैसे, अगर आप प्रमाण स्थापित करना चाहते हैं से पहले क्रोम का पहला भाग (यानी जबकि .pki / dir अभी भी गायब है), आपको पहले nssdb बनाना होगा: mkdir -p $HOME/.pki/nssdb && chmod -R 0700 $HOME/.pki && certutil -d sql:$HOME/.pki/nssdb -N --empty-password - akavel
सिस्टम प्रमाणपत्र स्टोर से क्रोम और फ़ायरफ़ॉक्स को पढ़ने के लिए एक तरीका है। मेरा जवाब देखें: superuser.com/a/1312419/506107 - wheeler


डेबियन के आधार पर नए निर्माण के लिए, आपको दौड़ने की आवश्यकता हो सकती है:

sudo dpkg-reconfigure ca-certificates

नोट: sudo dpkg-reconfigure ca-certificates आंतरिक रूप से अद्यतन-सीए-प्रमाणपत्र कॉल करता है

इससे पहले कि आप इनमें से कोई भी करने से पहले आपको अभी भी प्रमाणपत्र (.crt फ़ाइल) को / usr / share / ca-certificates में कॉपी करने की आवश्यकता होगी :)


8
2017-09-02 06:19





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
2018-04-10 01:00





जैसा कि ध्यान दिया गया है, एनएसएस का उपयोग करने वाले विभिन्न अनुप्रयोगों का अपना प्रमाणपत्र स्टोर है। चूंकि चीजें उबंटू पर खड़ी हैं, आपको मैन्युअल रूप से उपयोग करना होगा certutil प्रत्येक उपयोगकर्ता के लिए प्रत्येक एप्लिकेशन के लिए अपने सीए जोड़ने के लिए।

फेडोरा जैसे अन्य वितरणों में, इस तरह की चीज जस्ट वर्क्स और आपको किसी भी एप्लिकेशन के खिलाफ एक बग फाइल करना चाहिए जो आपके द्वारा इंस्टॉल किए गए सीए पर स्वचालित रूप से विश्वास नहीं करता है 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

फिर आप मर्जी सिस्टम की कॉन्फ़िगर की गई ट्रस्ट जड़ों को प्राप्त करें, कुछ हार्ड-कोड वाले नहीं। ध्यान दें कि उबंटू कई जहाजों को भेजता है विभिन्न हार्ड-कोडेड ट्रस्ट जड़ों के साथ उस libnssckbi.so लाइब्रेरी की प्रतियां, और आपको उन सभी को प्रतिस्थापित करना होगा!

सीएफ https://bugs.launchpad.net/ubuntu/+source/nss/+bug/1647285


1
2017-12-12 12:36



जब मैंने किया 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? - wheeler
ठीक है, बस लिंकिंग की पुष्टि की /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so -> /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so एक जादू की तरह काम किया। मैं एक प्रमाणपत्र जोड़ने में सक्षम था /usr/local/share/ca-certificates, भागो sudo update-ca-certificates, और PRESTO, क्रोम ने स्वयं हस्ताक्षरित प्रमाणपत्र स्वीकार करना शुरू कर दिया। - wheeler


यहाँ जोड़ने के लिए गंभीर रूप से बेवकूफ जवाब, लेकिन मैंने लिनक्स में प्रमाण पत्र के साथ 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 

निम्नलिखित के बाद मेरी सफलता की कुंजी थी: स्टीवन सोमवारसलाह है


0
2018-01-02 12:58