ওপেনএসএসএল: পিইএম রুটিনগুলি: PEM_read_bio: কোনও শুরুর লাইন নেই: pem_lib.c: 703: প্রত্যাশা করা: বিশ্বাসযোগ্য শংসাপত্র [বন্ধ]


104

স্টানেলের সিএপিথ ডিরেক্টরিতে ফাইল পোস্ট করার জন্য আমার একটি হ্যাশ-নাম দরকার need আমি এই ডিরেক্টরিতে কিছু শংসাপত্র পেয়েছি এবং তারা ভাল কাজ করছে। এছাড়াও, আমার একটি সার্ভার সার্ট এবং সার্ভার কী রয়েছে:

cert = c:\Program Files (x86)\stunnel\server_cert.pem 
key = c:\Program> Files (x86)\stunnel\private\server_key.pem

আমি যখন আমার নতুন শংসাপত্রের একটি হ্যাশ গণনা করার চেষ্টা করি তখন আমি একটি ত্রুটি পাই:

/etc/pki/tls/misc/c_hash cert.pem

unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE

আমি যেমন বুঝতে পেরেছি অবশ্যই আমার সার্টে স্বাক্ষর করতে হবে, তবে আমি কীভাবে এটি করতে পারি তা বুঝতে পারি না। দয়া করে সমাধান দিন।

পুনশ্চ:

বার্তা

unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE:

আমি যখন cert.pem এর জন্য সি_হ্যাশ তৈরি করেছি পোস্ট করা হয়েছে এটি সার্ভার_সেসার্ট.পিএম নয়, এটি রুট_সিএ এবং এটি এমন কিছু বিষয়বস্তু

-----BEGIN CERTIFICATE-----  
...6UXBNSDVg5rSx60=.. 

-----END CERTIFICATE-----

আমি যখন লিখি

openssl x509 -noout -text -in cert.pem

কনসোল প্যানেলে আমি এই তথ্যটি দেখছি:

    Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=BE, ST=BB, L=BB, O=BANKSYS NV, OU=SCY, CN=TEST Root CA
        Validity
            Not Before: May 31 08:06:40 2005 GMT
            Not After : May 31 08:06:40 2020 GMT
        Subject: C=BE, ST=BB, L=BB, O=BB NV, OU=SCY, CN=TEST Root CA
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:82:c8:58:1e:e5:7a:b2:63:a6:15:bd:f9:bb:1f:
............
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier:
                76:70:AB:92:9B:B1:26:CE:9E:93:D8:77:4F:78:0D:B8:D4:6C:DA:C6
    Signature Algorithm: sha1WithRSAEncryption
         2c:7e:bd:3f:da:48:a4:df:8d:7c:96:58:f7:87:bd:e7:16:24:
...............

4
অন্য শক্তি সাহায্যের কেউ, আমি যখন আমি ভুলভাবে আনা এই ত্রুটিটি পেয়েছিলেন keyএবং certফাইল httpsকনফিগ বস্তু প্রদান করা webpack.config'র devServer
টাও

উত্তর:


44
  1. আপনি যেহেতু উইন্ডোজে আছেন তাই উইন্ডোতে আপনার শংসাপত্রটি "সামঞ্জস্যপূর্ণ" নিশ্চিত করুন, সর্বাধিক গুরুত্বপূর্ণ যে এটি ^Mপ্রতিটি লাইনের শেষে নেই

    আপনি এটি খুললে এটি দেখতে দেখতে এটি দেখতে পাবেন:

    -----BEGIN CERTIFICATE-----^M
    MIIDITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM^M
    

    "এটি" সমাধান করতে এটি Writeবা নোটপ্যাড ++ দিয়ে খুলুন এবং এটি উইন্ডোতে "স্টাইল" এ রূপান্তর করুন

  2. চালানোর চেষ্টা করুন openssl x509 -text -inform DER -in server_cert.pemএবং আউটপুটটি কী তা দেখার সম্ভাবনা নেই, কোনও প্রাইভেট / সিক্রেট কী অবিশ্বস্ত হওয়ার সম্ভাবনা নেই, আপনি যদি কোনও কীস্টোর থেকে কীটি রফতানি করেন তবেই বিশ্বাসের প্রয়োজন হয়, আপনি কি?


4
openssl x509 -hash -noout -inএটি চালানোর চেষ্টা করুন এটি হ্যাশ এক্সট্রাকশন করে, দেখুন এটি সাহায্য করে কিনা?
নোম রাঠাস

এটি দরকারী ধন্যবাদ কিন্তু স্টানেল লগতে আমি ত্রুটিটি দেখতে পাচ্ছি SSL_accept: 14094418: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socketযখন আমি সংযোগ তৈরির চেষ্টা করব
lsv

এর অর্থ পুরোপুরি অন্য কিছু, এর অর্থ এই যে উভয় পক্ষই caতাদের সিএ শংসাপত্রের জন্য একই ব্যবহার করছে না
Noam Rathaus

4
ধন্যবাদ, openssl x509 -text -inform DER -in server_cert.pemআমার p7bএনকোডযুক্ত (?) শংসাপত্রটি ব্যবহারযোগ্য কিছুতে রূপান্তর করুন ।
কোয়েন

4
আমার সমস্যাটি এখানে বর্ণিত হিসাবে সিআরএলএফ লাইন সমাপ্তি ছিল না, তবে এই পরামর্শটি আমাকে ট্র্যাকে পাওয়ার জন্য যথেষ্ট ছিল। আমার সমস্যাটি ছিল আমার ফাইলটি একটি বিওএম দিয়ে ডাবল-বাইট ইউনিকোড সংরক্ষণ করা হয়েছিল, এবং উইন্ডোজের জন্য ওপেনসেল এটি মোকাবেলা করতে পারে নি। আমি asiii হিসাবে resaved এবং এটি কাজ করে।
এলরো ফ্লাইন

37

এর আর একটি সম্ভাব্য কারণ; x509 ব্যবহার করার চেষ্টা করছে; X.509 নয় এমন কিছুতে মডিউল।

সার্ভার শংসাপত্রটি X.509 ফর্ম্যাট, তবে ব্যক্তিগত কীটি আরএসএ R

সুতরাং:

openssl rsa -noout -text -in privkey.pem
openssl x509 -noout -text -in servercert.pem

17

আমার ভুলটি কেবল সিইআরটি ফাইলের পরিবর্তে সিএসআর ফাইলটি ব্যবহার করছিল।


4
কমপক্ষে আমিই এই ভুলটি করেছি এমন আমিই নই ... আমি অবাক হয়েছি মডিউলটি এ সম্পর্কে আমাদের সতর্ক করে না।
edwardsmarkf

4
এটি আমাকে কাজ করতে কয়েক ঘন্টা সময় নিয়েছে। Xmlsec1 থেকে একটি রহস্যপূর্ণ ত্রুটি সহ সকল শুরু করে,key is not found
Amichai Schreiber

14

আমার পরিস্থিতি কিছুটা আলাদা ছিল। সমাধানটি ছিল সার্টিফিকেট এবং প্রাইভেট কী বিভাগের বাইরের সমস্ত কিছু থেকে .pem কে ছিনিয়ে নেওয়া এবং তারা হাজির হওয়া ক্রমটি উল্টে দেওয়া। পিএফএক্স থেকে পেম ফাইলে রূপান্তর করার পরে শংসাপত্রটি এমন দেখায়:

Bag Attributes
localKeyID: ...
issuer=...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Bag Attributes
more garbage...
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----

ফাইলটি সংশোধন করার পরে, এটি ঠিক ছিল:

-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

এম কেন্ডা নুব, প্লিজ আমাকে পরামর্শ দিন..এই ফাইলটি ম্যাক
কীভাবে

আমারও তেমন ত্রুটি হয়েছিল অর্ডার উল্টানো আমার পক্ষে কাজ করেছিল।
জন রিচার্ডসন

আমার কীগুলি নতুন ফাইল তৈরি করার জন্য আমার পৃথক ফাইলগুলির প্রয়োজন ছিল:cat $SOURCE/privkey.pem $SOURCE/fullchain.pem > server.pem
এরিচবিএসচুল্জ

8

আমার উইন্ডোজটি ব্যবহার করে একই সমস্যা ছিল, নোটপ্যাড ++ এ এটি খুললে এবং "ইউসিএস -২ এলইএম বিওএম" থেকে "ইউটিএফ -8" এ এনকোডিং পরিবর্তন করে ঠিক করা থাকলে তা পেয়েছি।


6

বিওএম সহ নোটপ্যাড ++ ইউটিএফ -8 এ এনকোডিং পরিবর্তন করুন । এটি আমার পক্ষে কাজ করেছিল


4
হ্যাঁ! এটি আমার পক্ষে কাজ করেছে। দ্রষ্টব্য অ্যাপলের কীচেন ইউটিলিটি থেকে রফতানি করা পিইএম শংসাপত্রগুলিতে বিওএম নেই এবং এটি কিছু প্রোগ্রামকে আপসেট করে।
হিউঘুঘটওটল

5

আপনি যদি নির্লিপ্তভাবে এটি করার চেষ্টা করেন তবে আপনি এই বিভ্রান্তিকর ত্রুটি পেতে পারেন :

[clear] -> Private Key Encrypt -> [encrypted] -> Public Key Decrypt -> [clear]

একটি ব্যক্তিগত কী ব্যবহার করে ডেটা এনক্রিপ্ট করা ডিজাইনের দ্বারা অনুমোদিত নয়

আপনি খোলা এসএসএলের জন্য কমান্ড লাইন বিকল্পগুলি থেকে দেখতে পাচ্ছেন যে encrypt -> decryptএকদিকে যাওয়ার একমাত্র বিকল্প public -> private

  -encrypt        encrypt with public key
  -decrypt        decrypt with private key

অন্য দিকটি ইচ্ছাকৃতভাবে প্রতিরোধ করা হয়েছে কারণ পাবলিক কীগুলি মূলত "অনুমান করা যায়।" সুতরাং, একটি প্রাইভেট কী দিয়ে এনক্রিপ্ট করার অর্থ লেখককে যাচাই করা কেবলমাত্র ব্যক্তিগত কীতে অ্যাক্সেস রয়েছে।

private key encrypt -> public key decryptঅভিমুখ "স্বাক্ষরের" বলা হয় একটি পন্থা যা করতে পারেন আসলে সুরক্ষিত ডেটা হওয়া থেকে আলাদা করতে।

  -sign           sign with private key
  -verify         verify with public key

দ্রষ্টব্য: আমার বিবরণ স্বচ্ছতার জন্য সরলীকরণ। আরও তথ্যের জন্য এই উত্তর পড়ুন

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