ওপেনএসএসএল এবং ওপেনএসএল.কনফ ফাইলটি পড়ার ক্ষেত্রে ত্রুটি


119

আমি উইন্ডোজ এক্সপি 32 বিট চালাচ্ছি

আমি নীচের ইউআরএল থেকে ওপেনসেল ডাউনলোড করেছি এবং এটি ইনস্টল করেছি। http://www.slproweb.com/products/Win32OpenSSL.html

এবং তারপরে আমি নিম্নলিখিত কমান্ডটি ব্যবহার করে একটি স্বাক্ষরিত শংসাপত্র তৈরি করার চেষ্টা করেছি

openssl req -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

তারপরে এটি নীচের ত্রুটি দেওয়া শুরু করে

/Usr/local/ssl/openssl.cnf থেকে কনফিগার করা তথ্য লোড করতে অক্ষম

তারপরে গুগল করার পরে আমি উপরের কমান্ডটি পরিবর্তন করেছিলাম

openssl req -config C:\OpenSSL\bin\openssl.conf -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

তবে এখন আমি কমান্ড প্রম্পটে নিম্নলিখিত ত্রুটিটি পেয়েছি

সি এর লাইন -1 এ ত্রুটি: \ ওপেনএসএসএল \ বিন \ ওপেনসেল.কনফ
4220: ত্রুটি: 02001002: সিস্টেম লাইব্রেরি: ফপেন: এই জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই: \ ক্রিপ্টো \ বায়ো \ বিএসএস_ফাইল.সি: 126: ফপেন ('সি: \ OpenSSL \ bin \ openssl.conf ',' আরবি ') 4220: ত্রুটি: 2006D080: BIO রুটিন: BIO_new_file: এরকম কোনও ফাইল নেই:। Crypto \ bio \ bss_file.c: 129:
4220: ত্রুটি: 0E078072: কনফিগারেশন ফাইল রুটিন : ডিএফ_এলএডিডি: এ জাতীয় কোনও ফাইল নেই: \

সাহায্য করুন. আগাম ধন্যবাদ.


3
সঠিক ফাইলের নাম চেক করুন: openssl.conf ---> openssl.cnf
চিহ্নিত করুন

2
উইন্ডোজ ফাইল এক্সটেনশন এখন .cfg হয়। এছাড়াও নিশ্চিত করুন যে ফাইলটি নির্দিষ্ট করা হয়েছে (কমান্ড লাইনে বা পরিবেশ পরিবর্তনশীল ওপেনএসএসএল_সিএনএফ এ) কোটের ভিতরে নেই।
টাটেক্স

ওপেনএসএসএল ইনস্টল করতে কী ব্যবহৃত হয়েছিল তার উপর নির্ভর করে ফাইল এক্সটেনশন (.cnf / .cfg) পরিবর্তিত হয় appears ওয়্যাম্প সার্ভারের v3.2.2 ইনস্টলটিতে আমি কনফিগারেশন ফাইলের নামটি ওপেনএসএল.সিএনএফ করেছিলাম। আমি শাইনিং পাথ প্রোডাকশনের বাইনারিগুলি ব্যবহার করে একটি উইন্ডো 10 64-বিট ইনস্টলও করেছি। এই ইনস্টলেশনের ফাইলটির নাম ছিল openssl.cfg। ওপেনএসএসএল কনফিগারেশন ফাইল এক্সটেনশনের নামগুলিতে এই পার্থক্যটি সংকলন নির্ভর করে বলে মনে হয়। ওপেনএসএসএল ভি 1.1.1 জি দ্বারা কোন এক্সটেনশনের নামটি স্বীকৃত তা আমি এখনও পরীক্ষা করে দেখিনি।
বিল ভ্যালেন্স

উত্তর:


140

উইন্ডোজে আপনি পরিবেশের সম্পত্তিও সেট করতে পারেন OPENSSL_CONF। কমান্ডলাইন থেকে উদাহরণস্বরূপ আপনি টাইপ করতে পারেন:

set OPENSSL_CONF=c:/libs/openssl-0.9.8k/openssl.cnf

এটি যাচাই করতে আপনি টাইপ করতে পারেন:

echo %OPENSSL_CONF%

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

এখন আপনি কনফিগার অবস্থান প্যারামিটারটি পাস না করে ওপেনসেল কমান্ডগুলি চালাতে পারেন।


9
ধন্যবাদ, আমার জন্য কাজ করেছেন! (OPENSSL_CONF = সি সেট করুন: \
ওপেনসেল-উইন 32

@jww চেষ্টা করেছেন তবে এটি আমাকে বলেছে যে একটি অবৈধ আদেশ আছে। কোন ধারনা?
সারা

3
@ সারাহ - setএকটি উইন্ডোজ কমান্ড এবং এর অর্থ চালানো উচিত cmd.exe। এটি একটি উইন্ডোজবিহীন মেশিনে কাজ করবে না। setএবং echoজিনিস পাওয়ার শেল কাজ করে না, হয়। আপনি যেমন কিছু ব্যবহার করবে $X=1; Write-Output $X
jww

@jww ধন্যবাদ আমি একটি উইন্ডোজ মেশিনে আছি তবে আমি সে কমান্ডটি cmd.exe এর পরিবর্তে openssl.exe এ ব্যবহার করছিলাম .. আমি আপনার মন্তব্যটি পড়ে সেমিডি.এক্সে গিয়ে সেখানে সেট কমান্ডটি টাইপ করেছি। এটি সঠিকভাবে কাজ করেছে তবে আমি এখনও ওপেনএসএল.এক্সে একই ত্রুটি পেয়ে যাচ্ছিলাম "ভুল_পথ / এসএসএল / ওপেনসেল.সিএনএফ থেকে কনফিগার তথ্য লোড করতে অক্ষম" তাই আমি নীচের সমাধানটি আপনার ওপেনসেল ডিরেক্টরিতে পরামিতি-কনফিগ যুক্ত করার চেষ্টা করেছিলাম এবং যে নিখুঁত কাজ। তাই আমি খুশি. সহায়তার জন্য ধন্যবাদ :)
সারা

উত্তর হিসাবে চিহ্নিত করা উচিত। স্পষ্টতই অপ্রয়োজনীয় হওয়া উচিত। কেন এই ওপেনএসএসএল উইন্ডোজগুলি উদাহরণস্বরূপ পিডাব্লুডিতে ডিফল্ট হয় না?
স্টোনডাউজ

40

আসল ইনস্টলড পাথটিতে -config c:\your_openssl_path\openssl.cfgপরিবর্তন করে কেবল আপনার কমান্ড লাইনের প্যারামিটারে যুক্ত করুন your_openssl_path


দুর্দান্ত, এই ব্লগ পোস্ট ajden.towfeek.se/post/… অনুসরণ করে এবং - কনফিগ সাইগউইনের পক্ষেও কাজ করে যেমন উদাহরণস্বরূপ, $ openssl ca -in server.csr -config /etc/ssl/openssl.cnf তবে কেন - কনফিগ মেন ওপেনসেল-এ তালিকাভুক্ত হয় না? openssl.org/docs/apps/openssl.html
barlop

@ নিওনিও এটি এবং উপরের সমাধানটি চেষ্টা করে কিন্তু এটি আমাকে সেট এবং কনফিগারেশন অবৈধ আদেশ বলে। কোন ধারনা?
সারা

সেট শুধুমাত্র উইন্ডোজ কাজ করে; কনফিগারেশন কোনও স্বতন্ত্র কমান্ড নয় (আপনি এটিকে আপনার ওপেনএসএসএল কমান্ড লাইনে যুক্ত করুন)।
nneonneo

29

এই ধাপে আপনার নিজের মতো একটি ওপেনএসএল.এনএফ ফাইল তৈরি করুন 4: http://www.flatmtn.com/article/setting-openssl-create-certificates

লিঙ্ক কাজ করা বন্ধ করার পরে সম্পাদনা করুন ওপেনএসএল.এনএফ ফাইলের সামগ্রীটি নিম্নলিখিত ছিল:

#
# OpenSSL configuration file.
#

# Establish working directory.

dir                 = .

[ ca ]
default_ca              = CA_default

[ CA_default ]
serial                  = $dir/serial
database                = $dir/certindex.txt
new_certs_dir               = $dir/certs
certificate             = $dir/cacert.pem
private_key             = $dir/private/cakey.pem
default_days                = 365
default_md              = md5
preserve                = no
email_in_dn             = no
nameopt                 = default_ca
certopt                 = default_ca
policy                  = policy_match

[ policy_match ]
countryName             = match
stateOrProvinceName         = match
organizationName            = match
organizationalUnitName          = optional
commonName              = supplied
emailAddress                = optional

[ req ]
default_bits                = 1024          # Size of keys
default_keyfile             = key.pem       # name of generated keys
default_md              = md5               # message digest algorithm
string_mask             = nombstr       # permitted characters
distinguished_name          = req_distinguished_name
req_extensions              = v3_req

[ req_distinguished_name ]
# Variable name             Prompt string
#-------------------------    ----------------------------------
0.organizationName          = Organization Name (company)
organizationalUnitName          = Organizational Unit Name (department, division)
emailAddress                = Email Address
emailAddress_max            = 40
localityName                = Locality Name (city, district)
stateOrProvinceName         = State or Province Name (full name)
countryName             = Country Name (2 letter code)
countryName_min             = 2
countryName_max             = 2
commonName              = Common Name (hostname, IP, or your name)
commonName_max              = 64

# Default values for the above, for consistency and less typing.
# Variable name             Value
#------------------------     ------------------------------
0.organizationName_default      = My Company
localityName_default            = My Town
stateOrProvinceName_default     = State or Providence
countryName_default         = US

[ v3_ca ]
basicConstraints            = CA:TRUE
subjectKeyIdentifier            = hash
authorityKeyIdentifier          = keyid:always,issuer:always

[ v3_req ]
basicConstraints            = CA:FALSE
subjectKeyIdentifier            = hash

1
ইউআরএল আর খুঁজে পাওয়া যায় নি
গ্রেগ ডোমজান

15
set OPENSSL_CONF=c:/{path to openSSL}/bin/openssl.cfg

(ডান এক্সটেনশন যত্ন নিতে openssl.cfg না CNF)!

আমি এখান থেকে ওপেনএসএসএল ইনস্টল করেছি: http://slproweb.com/products/Win32OpenSSL.html


ইনস্টলেশন লিঙ্কটি সাহায্য করেছে, আমি অন্য কোথাও থেকে 0.9.8 ডাউনলোড করেছি এবং এটি কাজ করছে না। ধন্যবাদ.
এপিকপান্ডাফোরস

14

আপনি যদি ওপেনএসএসএল দিয়ে অ্যাপাচি ইনস্টল করে থাকেন তবে বিন ডিরেক্টরিতে নেভিগেট করুন। আমার ক্ষেত্রে ডি: \ অ্যাপাচি \ বিন।

* যদি আপনার ওপেনসেল একা একা দাঁড়িয়ে থাকে তবে এই কমান্ডগুলিও কাজ করে।

এই আদেশগুলি চালান:

openssl req -config d:\apache\conf\openssl.cnf -new -out d:\apache\conf\server.csr -keyout d:\apache\conf\server.pem
openssl rsa -in d:\apache\conf\server.pem -out d:\apache\conf\server.key
openssl x509 -in d:\apache\conf\server.csr -out d:\apache\conf\server.crt -req -signkey d:\apache\conf\server.key -days 365

* এটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করবে যা আপনি উন্নয়নের উদ্দেশ্যে ব্যবহার করতে পারেন

আবার যদি আপনি অ্যাপাচি httpd.conf স্টিক এ ইনস্টল করেন তবে:

  <IfModule ssl_module>
    SSLEngine on
    SSLCertificateFile "D:/apache/conf/server.crt"
    SSLCertificateKeyFile "D:/apache/conf/server.key"
  </IfModule>

প্রশ্ন জিজ্ঞাসা করা সহকর্মী পরিষ্কারভাবে বলেছিলেন যে তিনি উইন 32 ওপেনএসএসএল ব্যবহার করছেন। আপাচে জিনিস কোথা থেকে এলো? এটি প্রশ্নের সাথে কীভাবে প্রাসঙ্গিক?
jw.org

3
অবশ্যই এটি হ'ল ওপেনএসএসএল ইনস্টল করা যা আলাদাভাবে আসে বা অ্যাপাচি সহ একই জিনিস। আমি অ্যাপাচি বিট যুক্ত করেছি কারণ 95% ক্ষেত্রে উইন্ডোজে ওপেনএসএসএল ইনস্টল করার কারণটি অ্যাপাচে ব্যবহার করা হচ্ছে।
আর্টুর কেডজিয়র

এটি দরকারী কারণ XAMPP এ অ্যাপাচি ফোল্ডারের ভিতরে ওপেনএসএসএল অন্তর্ভুক্ত করে।
জিমি আদারো

মোহন মত কাজ!
দিব্যেশ প্রজাপতি

12

ওপেনসেল.এক্সইকে প্রশাসক হিসাবে চালানোর চেষ্টা করুন।


2
এগুলি কমান্ড পেতে প্রশাসক হিসাবে এই কমান্ডগুলি চালাবেন না। অন্তর্নিহিত সমস্যাটি ঠিক করা এটি আরও ভাল।
jwww

যদি এটি সিস্টেম ড্রাইভে প্রোগ্রাম ফাইল ডিরেক্টরিতে ইনস্টল করা থাকে তবে উন্নত অধিকার সহ কমান্ডটি চালানো প্রয়োজন, অন্যথায় আপনার লেখার অনুমতি নেই।
CodeManX

1
এটি আমার পক্ষে কাজ করেছে। আমি জানিনা কেন এটি অ্যাক্সেস করার চেষ্টা করা হয়েছিল C:\Program Files\Common Files\SSL/openssl.cnfএবং তারপরে হঠাৎ অ্যাডমিন হিসাবে চলার সময় এটি যত্নশীল ছিল না এটি এটি খুঁজে পেল না (এবং ফাইলটি তৈরিও করেনি) তবে এটি আমার পক্ষে কাজ করেছে তাই আমি যত্ন করি না পারেন।
সাইমন_উইভার

7

উইন্ডোজ বিন ফোল্ডারের জন্য অ্যাপাচি থেকে ওপেনএসএল.এক্সি ব্যবহার করার সময় আমার ঠিক একইরকম ত্রুটি হয়েছিল। আমার দ্বারা নির্ধারিত-কনফিগ পতাকাটি ওপেনএসএল সিএনএফ ফাইলের পথে একটি টাইপো ছিল। আমি মনে করি আপনি এটি খুঁজে পাবেন

openssl req -config C:\OpenSSL\bin\openssl.conf -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

হতে হবে

openssl req -config "C:\OpenSSL\bin\openssl.cnf" -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

নোট: সার্ভার সম্ভবত হওয়া উচিত CNF


4

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

set OPENSSL_CONF=<location where cnf is available>/openssl.cnf

এটা আমার জন্য কাজ করে।


3

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

কিভাবে বসাব:

  1. ওপেনএসএসএল বাইনারিগুলি এখানে ডাউনলোড করুন । (দ্রষ্টব্য যে এটি 0.9.8 ঘন্টা সংস্করণে কাজ করার জন্য নিশ্চিত হয়েছে))
  2. এই কোডটি স্টার্টওপেনএসএসএল.বাট নামে একটি অনুলিপি করুন। এটি আপনার পছন্দসই জায়গায় সংরক্ষণ করুন। এটি যে কোনও জায়গা থেকে চালানো যেতে পারে।

    @echo off
    title OpenSSL
    
    cd\openssl\bin
    
    if exist "C:\openssl\share\openssl.cnf" (
    
    set OPENSSL_CONF=c:/openssl/share/openssl.cnf
    start explorer.exe c:\openssl\bin
    
    echo Welcome to OpenSSL
    
    openssl
    
    ) else (
    
    echo Error: openssl.cnf was not found
    echo File openssl.cnf needs to be present in c:\openssl\share
    pause
    
    )
    
    exit
    
  3. একবার আপনি ওপেনএসএসএল বাইনারিগুলি ডাউনলোড করার পরে ওপেনএসএসএল শিরোনামের ফোল্ডারে আপনার সি ড্রাইভে এগুলি বের করুন। (পাথটি সি হতে হবে: \ ওপেনএসএসএল)। যে কোনও ফোল্ডার সামগ্রীকে এদিক ওদিক সরানো হবে না, কেবল সেগুলি ফোল্ডারে সরান।
  4. আপনি ওপেনএসএসএল ব্যবহারের জন্য প্রস্তুত। এটি উইন্ডোজ ব্যবহারকারীদের পক্ষে এটির দুর্দান্ত অনুমতি নেই কারণ এটি ইনস্টল করার সুযোগ পাবে না কারণ এটির অনুমতি নেই। কেবলমাত্র আগে থেকে ব্যাট ফাইলটি ডাবল ক্লিক করে চালান।

2

এখানে সমস্যাটি হ'ল GnuWin32 ওপেনএসএল স্টাফের সাথে একটি ওপেনএসএস সিএনএফ ফাইল দেওয়া হয়নি। আপনি এটি তৈরি করতে হবে। আপনি এখানে গিয়ে ওপেনএসএল সিএনএফ ফাইল তৈরি করতে কীভাবে তা জানতে পারেন:

http://www.flatmtn.com/article/setting-ssl-certificates-apache

এটি কীভাবে এটি করতে পারে আপনার পক্ষে এটি সমস্ত কিছু দেয়।

অনুগ্রহ করে দ্রষ্টব্য: ব্যাকস্ল্যাশ সহ ওপেনসেল কমান্ডটি ইউনিক্সের জন্য। উইন্ডোজ জন্য: 1) ব্যাকস্ল্যাশ সরান, এবং 2) দ্বিতীয় লাইনটি উপরে সরান যাতে এটি প্রথম লাইনের শেষে থাকে। (সুতরাং আপনি কেবল একটি আদেশ পাবেন।)

এছাড়াও: মন্তব্যগুলির মাধ্যমে পড়া খুব গুরুত্বপূর্ণ। সেগুলির উপর ভিত্তি করে আপনি কিছু পরিবর্তন করতে পারেন।


2

আমি উইন্ডোজ একই সমস্যা ছিল। পরিবেশের পরিবর্তনশীলটিকে নিম্নলিখিত হিসাবে সেট করে এটি সমাধান করা হয়েছিল:

পরিবর্তনশীল নাম: OPENSSL_CONF পরিবর্তনীয় মান: সি: (ওপেনএসএসএল ডিরেক্টরি) \ বিন \ ওপেনএসএল.সিএনএফ


1

যদি আপনি কোনও ত্রুটি দেখতে পান তবে এমন কিছু

লাইন -1 সি তে ত্রুটি: apacheconfopenssl.cnf

-কনফিগের পিছনে স্ল্যাশ থেকে সামনের স্ল্যাশে পরিবর্তন করার চেষ্টা করুন।


1

https://github.com/xgqfrms-gildata/App001/issues/3

  1. প্রথমে নিশ্চিত করুন যে আপনার কাছে openssl.cnfসঠিক পথে কোনও ফাইল রয়েছে;
  2. যদি আপনি এটি খুঁজে না পান তবে কেবল একটি ডাউনলোড করুন এবং এটি আপনার সেটিংসের পথে অনুলিপি করুন।
$ echo %OPENSSL_CONF%

$ set OPENSSL_CONF=C:\OpenSSL\bin\openssl.cnf

OpenSSL & node.js
xgqfrms

সি খুঁজে পাওয়া যায় নি: \ ওপেনএসএসএল \
স্নেহাল দ্বিবেদী

@ স্নেহাল দ্বিবেদী দয়া করে আমার বর্ণিত পদক্ষেপগুলি অনুসরণ করুন।
xgqfrms

0

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


0

আমি জানি এটি পুরানো - তবে ভেবেছিলাম যে এর দ্বারা ঘটে অন্যদের (এবং ভিজ্যুয়াল স্টুডিও ব্যবহার করুন) উপকৃত হতে পারে। আমি এটি অন্য পোস্টে পড়েছি যা আমি খুঁজে পাচ্ছি বলে মনে হচ্ছে না।

নোটপ্যাড ++ এ আপনার কনফিগারেশনটি খুলুন এবং নিশ্চিত করুন যে এটি এনকোডিংটি ইউটিএফ -8 (যেমন, ইউটিএফ -8-বিওএম * নয়)।

এটি আমাকে অনুসন্ধান / পরীক্ষামূলক 'ত্রুটিগুলি অনেকটা বাঁচাতে পারে ...


0

আমি জানি এই প্রশ্নটি পুরানো তবে এখানে আমি কীভাবে এটি সমাধান করেছি তা এখানে।

আমি openssl.cnfফাইলটি অনুলিপি করেছিলামbin ডিরেক্টরি প্যারেন্ট ডিরেক্টরিতে যা এর C:/Openssl/openssl.cnfপরিবর্তে C:/Openssl/bin/openssl.cnfএবং ভাল কাজ করেছে।

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