अपाचे एसएसएल - स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ


10

किसी तरह बस आज अचानक मेरे सीफाइल क्लाइंट ने इस त्रुटि को फेंक दिया। मुझे विश्वास नहीं है कि इसका सीफाइल मुद्दा है, क्योंकि मेरा ओपनसेल सटीक समान त्रुटि फेंकता है:

user@nb-user:~$ echo |openssl s_client -connect seafile.mydomain.ch:443
CONNECTED(00000003)
depth=1 C = IL, O = StartCom Ltd., OU = Secure Digital Certificate Signing, CN = StartCom Class 2 Primary Intermediate Server CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/description=5RygJ9fx8e2SBLzw/C=CH/ST=Thurgau/L=Frauenfeld/O=mydomain GmbH/CN=*.mydomain.ch/emailAddress=postmaster@mydomain.ch
   i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA
 1 s:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA
   i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGqzCCBZOgAwIBAgIDAjmGMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYDVQQGEwJJ
TDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0
[... some more lines]
-----END CERTIFICATE-----
subject=/description=5RygJ9fx8e2SBLzw/C=CH/ST=Thurgau/L=Frauenfeld/O=mydomain GmbH/CN=*.mydomain.ch/emailAddress=postmaster@mydomain.ch
issuer=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA
---
No client certificate CA names sent
---
SSL handshake has read 3997 bytes and written 431 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 96E1F6B9E123F8F8C1C1E8FB0DBACDBBE76ECB3E2CF5C46C1FD2CF46833C8212
    Session-ID-ctx: 
    Master-Key: 25837E1786B0CC60E676D0694319641CD0887F9CAF48A820F1C0D6ABA6FDE0742551816ACD2A4885B0D3FC143716B1F6
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 88 15 c0 c5 30 04 63 d6-ff 7c 72 c4 12 84 7b d6   ....0.c..|r...{.
    0010 - 73 33 8d 91 7c da ce 22-23 d0 31 fb c1 7f 1c 9c   s3..|.."#.1.....
    [... some more lines]

    Start Time: 1424953937
    Timeout   : 300 (sec)
    Verify return code: 20 (unable to get local issuer certificate)
---
DONE

मेरे लिए चेन वाला हिस्सा ठीक वैसा ही दिखता है, जैसा उसे होना चाहिए। Apache conf भी ठीक होना चाहिए:

root@i-can-haz-data ~ # cat /etc/apache2/sites-enabled/seafile.conf

<VirtualHost *:443>

    ServerName seafile.mydomain.ch
    DocumentRoot /opt/seafile/www

    [... seafile specific things]

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLEngine on
    SSLCertificateFile      /etc/ssl/custom/wildcardmydomain.ch.crt
    SSLCertificateKeyFile   /etc/ssl/custom/wildcardmydomain.ch.key
    SSLCertificateChainFile /etc/ssl/custom/wildcardmydomain.ch.chain.crt

    [... seafile specific things]

</VirtualHost>

मुझे पता नहीं चला कि मेरा मुद्दा क्या है ... (ca-प्रमाणपत्र मेरे lubuntu 14.04 पर स्थापित है)। उनकी साइट लागू नहीं है क्योंकि उन्होंने अपने कक्षा 1 प्रमाण पत्र को लिंक किया है, लेकिन मेरा उनकी कक्षा 2 द्वारा जारी किया गया है।


कौन सा ऑपरेटिंग सिस्टम? हाल ही में ca-प्रमाणपत्र अपडेट किया गया? 2015-02-23 को उबंटू के लिए अपडेट थे। क्या होगा यदि आप जोड़ते हैं -CApath /etc/ssl/certs/या जहां आपके सेर्ट्स संग्रहीत होते हैं? क्या आप शायद श्रृंखला में रूट प्रमाण पत्र याद कर रहे हैं?
sebix

वाह, आप मुझे सही दिशा की ओर इशारा करते हैं। धन्यवाद! echo | opensl s_client -connect seafile.mydomain.ch:443 -CApath / etc / ssl / certs / -> सत्यापित करें कोड: 0 (ठीक है) DISTRIB_DESESIPTION = "Ubuntu 14.04.2 LTS"। सिस्टम अपटूडेट: 0 अपग्रेड किया गया, ० नव स्थापित, ० हटाने के लिए और ० अपग्रेड नहीं किया गया। पैकेज: ii सीए-सर्टिफिकेट 20141019ubuntu0.14.04.1
डायोनिसियस

जवाबों:


19
verify error:num=20:unable to get local issuer certificate

ओपनएसएसएल द्वारा इस त्रुटि का मतलब है कि कार्यक्रम प्रमाण पत्र जारी करने वाले या किसी प्रदान की गई श्रृंखला के सबसे ऊपरी प्रमाणपत्र को सत्यापित करने में असमर्थ था। यह कुछ मामलों में हो सकता है, उदाहरण के लिए:

  • प्रमाणपत्र के लिए प्रमाण पत्र श्रृंखला दूसरे पक्ष द्वारा प्रदान नहीं की गई थी या इसमें एक नहीं है (यह स्व-हस्ताक्षरित है)।
  • रूट प्रमाणपत्र विश्वसनीय रूट प्रमाणपत्र के स्थानीय डेटाबेस में नहीं है।
  • विश्वसनीय रूट प्रमाणपत्र का स्थानीय डेटाबेस नहीं दिया गया था और इस तरह से ओपनएसएसएल द्वारा इसकी पुष्टि नहीं की गई थी। प्रमाणपत्रों को स्पष्ट रूप से रास्ता देने के लिए, -CApathया -CAfileविकल्प का उपयोग करें । डेबियन और उबंटू के लिए यह उदाहरण के लिए है:

    -CApath /etc/ssl/certs/
    -CAfile /etc/ssl/certs/ca-certificates.crt
    

    इस प्रकार या तो परिणाम हुआ

    openssl s_client -connect example.com:443 -CApath /etc/ssl/certs/
    openssl s_client -connect example.com:443 -CAfile /etc/ssl/certs/ca-certificates.crt
    

उत्तरार्द्ध को अधिक जानकारी की आवश्यकता है। 2009 से उबंटू में ओपनएसएसएल के लिए एक खुली बग रिपोर्ट है :

का उपयोग करते हुए -CAp सेट करने के लिए लगता है / -cc/ssl/certs/ca-certports.crt के डिफ़ॉल्ट पर -file।

इससे कोई फर्क नहीं पड़ता कि आप किस रास्ते को देते हैं -CApath, यह काम कर सकता है, क्योंकि -CAfileयह डिफ़ॉल्ट मान पर सेट है (जो पहले से खाली था)। इसलिए, स्थानीय प्रमाणपत्र डेटाबेस द्वारा प्रमाणपत्रों को सत्यापित करने पर ओपनएसएसएल के डिफ़ॉल्ट व्यवहार पर भरोसा न करें, यह फर्जी हो सकता है!


तो आपका मतलब है, कि या तो मेरा सर्वर और मेरा नोटबुक सिस्टम कॉन्फिग कुछ भी गलत नहीं है (क्योंकि इसके -path विकल्प के साथ ठीक है)? ठीक है, तो यह सीफ़ाइल-क्लाइंट की एक गलती मुझे उस त्रुटि को सूचित कर रही है? शायद इसका यह मुद्दा: github.com/haiwen/seafile-client/issues/93 - लेकिन धन्यवाद, हल के रूप में चिह्नित :)
डायोनिसियस

मैंने ओपनएसएसएल के व्यवहार में अधिक खुदाई की, मेरी अद्यतन पोस्ट देखें। आप
upvoting
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.