অবৈধ স্ব স্বাক্ষরিত এসএসএল শংসাপত্র - "বিষয় বিকল্প নাম অনুপস্থিত"


99

সম্প্রতি, ক্রোম আমার স্বাক্ষরিত এসএসএল শংসাপত্রগুলির সাথে কাজ করা বন্ধ করে দিয়েছে এবং তারা নিরাপদ বলে মনে করে। আমি যখন DevTools | Securityট্যাবে থাকা সার্টিটির দিকে তাকাই , আমি দেখতে পাই এটি বলছে says

বিষয় বিকল্প নাম অনুপস্থিত এই সাইটের শংসাপত্রটিতে একটি ডোমেন নাম বা আইপি ঠিকানা সম্বলিত একটি বিকল্প বিকল্প নাম এক্সটেনশন নেই।

শংসাপত্রের ত্রুটি সাইটের শংসাপত্র শৃঙ্খলে (নেট :: ERR_CERT_COMMON_NAME_INVALID) নিয়ে সমস্যা রয়েছে।

আমি এটা কিভাবে ঠিক করবো?


34
। কিভাবে এই একটি প্রোগ্রামিং না প্রশ্ন ..... তার স্ব স্বাক্ষরের সার্টিফিকেট যা আপনার স্ট্যাক তৈরি একটি অংশ সম্পর্কে ,,, আপনি ব্র্যাড ধন্যবাদ
মিষ্টি আপনি Chilly ফিলি

4
CN=www.example.comসম্ভবত ভুল। হোস্ট-নেম সর্বদা SAN এ যায় । যদি এটি সিএন-তে উপস্থিত থাকে তবে অবশ্যই এটি এসএএন-তে উপস্থিত থাকতে হবে (আপনাকে এ ক্ষেত্রে দুবার তালিকাবদ্ধ করতে হবে)। আরও নিয়ম এবং কারণগুলির জন্য, আপনি কীভাবে নিজের শংসাপত্র কর্তৃপক্ষের সাথে শংসাপত্র স্বাক্ষরকরণের অনুরোধটি স্বাক্ষর করবেন এবং কীভাবে ওপেনসেল দিয়ে স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করবেন? আপনাকে যথাযথ ট্রাস্ট স্টোরে স্ব-স্বাক্ষরিত শংসাপত্র স্থাপন করতে হবে।
jwww

@jww - এটি সেই প্রশ্নের সদৃশ নয়, যেহেতু আপনাকে ওপেনসেল ব্যবহার করে কোনও সার্টি তৈরি করতে হবে না, আপনি অন্যান্য সরঞ্জাম দিয়ে এটি তৈরি করতে পারেন।
ব্র্যাড পার্কস

4
@ ব্র্যাডপার্কস - হুম্ম ... প্রশ্নটি ওপেনএসএসএল ট্যাগ করা হয়েছিল এবং গৃহীত উত্তরটি ওপেনএসএসএল ব্যবহার করে। আমি ওপেনএসএসএল ট্যাগটি আবার খোলা এবং সরিয়েছি।
jwww

উত্তর:


104

এটি ঠিক করার জন্য, আপনি opensslযখন শংসাপত্রটি তৈরি করছেন তখন মূলত আপনাকে অতিরিক্ত প্যারামিটার সরবরাহ করতে হবে

-sha256 -extfile v3.ext

আপনি যেমন ব্যবহার করেন তেমন নামের v3.extসাথে %%DOMAIN%%প্রতিস্থাপনের মতো ফাইলটি কোথায় Common Name? আরো তথ্য এখানে এবং এখানে উপর । নোট করুন যে সাধারণত আপনি Common Nameএবং %%DOMAIN%%সেই ডোমেনে সেট করতে চান যার জন্য আপনি শংসাপত্র তৈরি করার চেষ্টা করছেন। সুতরাং যদি এটি হয় www.mysupersite.comতবে আপনি উভয়ের জন্য এটি ব্যবহার করতেন।

v3.ext

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = %%DOMAIN%%

দ্রষ্টব্য: স্ক্রিপ্টগুলি যা এই সমস্যাটিকে সম্বোধন করে এবং Chrome, সাফারি এবং জাভা ক্লায়েন্টের ব্যবহারের জন্য পুরোপুরি বিশ্বস্ত এসএসএল শংসাপত্রগুলি তৈরি করতে পারে এখানে

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


4
XAMPP এর কোন সংস্করণ আপনি ব্যবহার করছেন তা নিশ্চিত নয় তবে আপনি যদি সেই ফাইলটিতে "ওপেনসেল x509" রয়েছে এমন কোনও লাইন সন্ধান করেন তবে আপনার ফাইলটির সেই লাইনটির শেষের দিকে উপরেরটি যুক্ত করতে সক্ষম হওয়া উচিত। উদাহরণস্বরূপ, এই সংস্করণে makecert.bat , লাইন 9 তে এটি আছে, এবং হচ্ছে শেষ হবে: bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365 -sha256 -extfile v3.ext। অবশ্যই আপনাকে v3.ext একই ফোল্ডারের একটি ফাইলে সংরক্ষণ করতে হবে।
ব্র্যাড পার্কস

4
আমি সবকিছু চেষ্টা করার পরে ক্রোম ছেড়ে দিয়েছিলাম এবং অন্য একটি ব্রাউজার দিয়ে চালিয়ে গিয়েছি। কয়েক দিন পরে, আজ আমি ক্রোম দিয়ে পরীক্ষা করেছি এবং এটি কাজ করে !!! ক্রোমের সম্ভবত একটি ত্রুটি ছিল এবং তারা এটি ঠিক করেছিল। সাবজেক্ট বিকল্প বিকল্প মিস করার জন্য আপনার পদ্ধতি !!!! ব্রাউজারে বিশ্বস্ত রুট শংসাপত্রগুলির অধীনে শংসাপত্র যুক্ত করুন।
তারিক

38
আমি হচ্ছি unknown option -extfile। আমি কিভাবে এটা ঠিক করব?
নিক ম্যানিং

4
@ নিকম্যানিং - সম্ভবত আপনি extfileভুল ওপেনসেল কমান্ডের নির্দেশিকাটি ব্যবহার করছেন ? এটি ব্যবহার করার পরিবর্তে এটি openssl req -new ...ব্যবহৃত হয় openssl x509 -req ...। কমপক্ষে এখানে কেউ বলেছিলেন , যা এই শংসাপত্রগুলি সম্পূর্ণরূপে কীভাবে উত্পন্ন করতে হবে তার একই প্রশ্নের অন্য উত্তরটিতে আমার কাছে উদাহরণ
ব্র্যাড পার্কস

4
"ওপেনএসএলে একটি অতিরিক্ত প্যারামিটার সরবরাহ করুন" বিশেষত কোন আদেশে? একাধিক পদক্ষেপ জড়িত রয়েছে এবং এই উত্তরটি খুব অস্পষ্ট: আইবিএম
সাপোর্ট

35

নিম্নলিখিত সমাধানটি ক্রোম 65 ( রেফ ) -এ আমার জন্য কাজ করেছে -

একটি ওপেনএসএসএল কনফিগারেশন ফাইল তৈরি করুন (উদাহরণ: req.cnf)

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = MyCompany
OU = MyDivision
CN = www.company.com
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = www.company.com
DNS.2 = company.com
DNS.3 = company.net

এই কনফিগার ফাইলটি উল্লেখ করে শংসাপত্র তৈরি করুন

openssl req -x509 -nodes -days 730 -newkey rsa:2048 \
 -keyout cert.key -out cert.pem -config req.cnf -sha256

4
এটা অসাধারণ! হুবহু আমার যা প্রয়োজন ছিল, এবং এটি কোম্পানির নাম এবং রাজ্য এবং এ জাতীয় জিনিসগুলির জন্য বিরক্তিকর অনুরোধগুলি এড়িয়ে যায়।
coredumperror

4
আমি সেখানে কিছু বিকল্প সমাধান চেষ্টা করেছিলাম তবে এটিই আমার জন্য কাজ করেছে। ধন্যবাদ!!
মিরকো

4
আপনি কমান্ড-লাইন থেকে বিষয়টি পাস করতে পারবেন: ওপেনসেল রেকর্ড ... -সুবজ "/ সি= ইউএস / এসএসটিভি / ভিএ / এল=সোমসিটি / ও= মাইকম্পানি / সিএন=www.company.com"
জারোস্লাভ জেরুবা

আপনি ক্রোমে কীভাবে আমদানি করলেন? এখানে কি basicConstraints = CA:trueঅনুপস্থিত?
কাঠজ

19

বাশ স্ক্রিপ্ট

আমি স্বতঃ স্বাক্ষরিত টিএলএস শংসাপত্রগুলি ক্রোমে বৈধ যা উত্পাদন করা সহজতর করার জন্য একটি বাশ স্ক্রিপ্ট তৈরি করেছি।

পরীক্ষিত Chrome 65.xএবং এটি এখনও কাজ করছে। নতুন শংসাপত্র ইনস্টল করার পরে ক্রোম পুনরায় চালু করতে ভুলবেন না।

chrome://restart



অন্যান্য উৎস

ক্লাউডফ্লেয়ারের cfsslটুলকিটটি যাচাই করার জন্য আরও একটি (অনেক বেশি শক্তিশালী) সরঞ্জাম :


4
আপনার এখানে স্ক্রিপ্টটি যুক্ত করা উচিত এবং এটি ব্যাখ্যা করা উচিত।
jwww

সুন্দর স্ক্রিপ্টের মতো মনে হচ্ছে। তবে কোনও স্ক্রিপ্টই (সরাসরি) ওপির সমস্যাটি কী তা সম্পর্কে সত্যিকারের উত্তর সরবরাহ করে না। সম্ভবত তাঁর সমস্যাটি কী তা ব্যাখ্যা করুন।
বিসিয়া

4

আমি কেবল -subjমেশিনগুলির আইপি ঠিকানা যুক্ত করে প্যারামিটারটি ব্যবহার করি । সুতরাং শুধুমাত্র একটি আদেশ দিয়ে সমাধান।

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -sha256 -subj '/CN=my-domain.com/subjectAltName=DNS.1=192.168.0.222/' -keyout my-domain.key -out my-domain.crt

আপনি সিটি, এসটি, এল, ও, ওইউ, ইমেলএড্রেসের মতো অন্যের বৈশিষ্ট্যগুলি যুক্ত না করে শংসাপত্রগুলি তৈরি করতে পারেন।


4
জন্য কাজ করে না। দেখে মনে হচ্ছে ক্রোম SAN কে এইভাবে চিনতে পারে না
একঘরে

এই কমান্ডটি ব্যবহার করে আমি ওপেনএসএসএল 1.1.0b এ "শংসাপত্রের অনুরোধ তৈরি করতে সমস্যা" পেয়েছি।
রিক

আমার জন্য (উইন্ডোজ) কিছুটা আলাদা সিনট্যাক্স কাজ করেছে: openssl.exe req -x509 -sha256 -newkey rsa:2048 -keyout certificate.key -out certificate.crt -days 365 -nodes -subj "/CN=my.domain.com" -addext "subjectAltName=DNS:my.domain.com" আইআইএস এর পরে *.pfxফর্ম্যাটটি দরকার:openssl.exe pkcs12 -export -out certificate.pfx -inkey certificate.key -in certificate.crt
ětápán Havránek

3

ম্যাকোস / ক্রোমে কাজ করে স্ব-স্বাক্ষরিত শংসাপত্র পাওয়ার ক্ষেত্রে আমার অনেক সমস্যা ছিল। অবশেষে আমি এমকিসার্টকে পেয়েছি, "আপনার পছন্দ মতো যে কোনও নাম দিয়ে স্থানীয়ভাবে বিশ্বস্ত বিশ্বাসের শংসাপত্র তৈরি করার জন্য একটি সাধারণ শূন্য-কনফিগার সরঞ্জাম" " https://github.com/FiloSottil/mkcert


এটি আমার উইন্ডোজ 10 এ নতুন ক্রোমেও কাজ করে। যদিও আমাকে ডিফল্ট উইন্ডোজ 32 system32 ফোল্ডার থেকে অন্যটিতে পিপিএম ফাইলগুলি অনুলিপি করতে হয়েছিল, কারণ এনগিনেক্স এই ফোল্ডারটি অ্যাক্সেস করতে পারে না।
ওয়াটাওয়ালে

2
  • আপনার হোম ডিরেক্টরিতে আপনার ওপেনএসএসএল কনফিগারেশনের একটি অনুলিপি তৈরি করুন:

    cp /System/Library/OpenSSL/openssl.cnf ~/openssl-temp.cnf
    

    বা লিনাক্সে:

    cp /etc/ssl/openssl.cnf ~/openssl-temp.cnf
    
  • এর openssl-temp.cnfঅধীন বিষয়বস্তু বিকল্প নাম যুক্ত করুন [v3_ca]:

    [ v3_ca ]
    subjectAltName = DNS:localhost
    

    localhostআপনি যে শংসাপত্রটি তৈরি করতে চান সেই ডোমেন দ্বারা প্রতিস্থাপন করুন ।

  • শংসাপত্র উত্পন্ন:

    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
        -config ~/openssl-temp.cnf
        -keyout /path/to/your.key -out /path/to/your.crt
    

তারপরে আপনি মুছতে পারেন openssl-temp.cnf


1

আমি v3.ext ফাইলের DNS.1 মান পরিবর্তন করে (নেট :: ERR_CERT_AUTHORITY_INVALID) থেকে মুক্তি পেতে সক্ষম হয়েছি

[alt_names] DNS.1 = ডোমেইননাম.কম

আপনার নিজের ডোমেন দিয়ে ডোমেননেম.কম পরিবর্তন করুন।


1

Chrome এমন একটি আইপি শংসাপত্র তৈরি করার খুব সহজ উপায়।

Ssl.conf ফাইল ...

[ req ]
default_bits       = 4096
distinguished_name = req_distinguished_name
req_extensions     = req_ext
prompt             = no

[ req_distinguished_name ]
commonName                  = 192.168.1.10

[ req_ext ]
subjectAltName = IP:192.168.1.10

যেখানে অবশ্যই 192.168.1.10 হ'ল স্থানীয় নেটওয়ার্ক আইপি আমরা ক্রোমকে বিশ্বাস করতে চাই।

শংসাপত্র তৈরি করুন:

openssl genrsa -out key1.pem
openssl req -new -key key1.pem -out csr1.pem -config ssl.conf
openssl x509 -req -days 9999 -in csr1.pem -signkey key1.pem -out cert1.pem -extensions req_ext -extfile ssl.conf
rm csr1.pem

উইন্ডোজ সমস্ত ক্লায়েন্ট মেশিনে বিশ্বস্ত রুট শংসাপত্র স্টোরে শংসাপত্রটি আমদানি করে। অ্যান্ড্রয়েড ফোন বা ট্যাবলেটে এটি ইনস্টল করতে শংসাপত্রটি ডাউনলোড করুন। এখন ক্রোম উইন্ডোজ এবং অ্যান্ড্রয়েডের শংসাপত্রকে বিশ্বাস করবে।

উইন্ডোজ ডেভ বাক্সে ওপেনএসএল.এক্স.ই.


0

উপর ম্যাক Chrome সংস্করণ 67.0.3396.99 থেকে শুরু আমার স্ব-স্বাক্ষরিত সার্টিফিকেট কাজ বন্ধ করে দেয়।

এখানে যা কিছু লেখা আছে তা দিয়ে পুনর্জন্ম কার্যকর হয়নি।

হালনাগাদ

আমার পদ্ধতির আজ কাজ করে তা নিশ্চিত করার সুযোগ ছিল :)। যদি এটি আপনার পক্ষে কাজ না করে তবে নিশ্চিত হন যে আপনি এই পদ্ধতির ব্যবহার করছেন

v3.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = <specify-the-same-common-name-that-you-used-while-generating-csr-in-the-last-step>
$

এখান থেকে অনুলিপি করা হয়েছে https://ksearch.wordpress.com/2017/08/22/generate-and-import-a-self-sided-ssl-certificate-on-mac-osx-sierra/

শেষ আপডেট

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

আশা করি এটি কারও জন্য একটি দিনের মতো সময় কাটাতে সহায়ক হবে।

ক্রোম আপডেট করবেন না!


0

আপনি যদি নিজের সার্ভার লোকালহোস্ট চালাতে চান তবে আপনাকে সেটআপ করতে হবে CN = localhostএবং DNS.1 = localhost

[req]
default_bits = 2048
default_md = sha256
distinguished_name = req_distinguished_name
prompt = no
prompt = no
x509_extensions = v3_req

[req_distinguished_name]
C = BR
CN = localhost
emailAddress=contact@example.com
L = Sao Paulo
O = example.com
OU = example.com
ST = Sao Paulo

[v3_req]
authorityKeyIdentifier = keyid, issuer
basicConstraints = CA:FALSE
extendedKeyUsage = serverAuth
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

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