স্ব-স্বাক্ষরিত শংসাপত্র ইনস্টল সাফল্যের দাবি করে, তবে অ্যান্ড্রয়েড এমনভাবে কাজ করে যা শংসাপত্র নেই


17

আমি অ্যান্ড্রয়েড ৪.৩ এ আমার ওয়েব সার্ভারের স্ব-স্বাক্ষরিত শংসাপত্রটি ইনস্টল করার চেষ্টা করছি। আমার এসডি কার্ডের মূলটিতে .crt ফাইল রয়েছে (যা আসলে স্লটে আমার কোনও এসডি কার্ড নেই বলে অনুকরণ করা হয়)।

শংসাপত্রটি ইনস্টল করতে আমি সেটিং -> সাধারণ -> সুরক্ষা -> শংসাপত্র সংগ্রহ -> ডিভাইস স্টোরেজ থেকে ইনস্টল করতে যাই।

আমি একটি ডায়ালগ বাক্স পেয়েছি যা শংসাপত্রের নাম (ফাইলের নাম বিয়োগকারী .crt এক্সটেনশন) যা আমি সংশোধন করতে পারি (তবে না), "ভিপিএন এবং অ্যাপ্লিকেশনগুলি" নির্বাচিত এবং নীচে টেক্সট সহ "টান ডাউন" জন্য ব্যবহৃত একটি " কথোপকথনে যা "প্যাকেজ ধারণ করে: একটি ব্যবহারকারীর শংসাপত্র" অবহিত করে। সবকিছু ঠিক আছে, তাই আমি "ওকে" ক্লিক করি। কথোপকথনটি চলে যায় এবং একটি টোস্ট বার্তা "[নাম] ইনস্টল করা" দিয়ে পপ আপ হয়।

তবে আমি যদি অবিলম্বে "বিশ্বস্ত শংসাপত্রগুলিতে যাই এবং" ব্যবহারকারী "নির্বাচন করি তবে সেখানে কিছুই নেই! নতুন শংসাপত্রটিও" সিস্টেম "এর অধীনে নয় তবে আমি সেখানে এটি আশা করব না this আমি যদি এই পরে কোনও ব্রাউজারে যাই এবং আমার কাছে যাওয়ার চেষ্টা করি ওয়েব সাইট, আমি এখনও সতর্কতা পেয়েছি যে সাইটের শংসাপত্রটি বিশ্বাসযোগ্য নয় I আমি পুনরায় বুট করার চেষ্টাও করেছি, তবে এটি কোনও পার্থক্য করে না।

আমি কি ভুল করছি? ত্রুটি বার্তাগুলির সম্পূর্ণ অভাব সহায়ক নয়। আমার শংসাপত্রটি কি ভুল ফর্ম্যাটে রয়েছে তা সম্ভব? আমি সার্ভারের এসএসএল ডিরেক্টরিতে .crt ফাইলটি ব্যবহার করার চেষ্টা করেছি এবং এটিকে DER ফর্ম্যাটে রূপান্তর করার চেষ্টা করেছি।

আপডেট: আমি কোথাও পড়েছি যে অ্যান্ড্রয়েডের p12 ফর্ম্যাটে শংসাপত্রের প্রয়োজন, তাই আমি নিম্নলিখিত কমান্ডটি ব্যবহার করে অ্যাপাচি 2 শংসাপত্রটিকে পি 12 এ রূপান্তর করেছি:

openssl pkcs12 -export -inkey server.key -in server.crt -out ~/server.p12

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

উত্তর:


19

আমার কাছে সত্যই শংসাপত্রটি ইনস্টল করতে অ্যান্ড্রয়েড পেতে আমার একই সমস্যা হয়েছিল, যতক্ষণ না আমি এই সাইটটি খুঁজে পেয়েছি যা আমার পক্ষে কাজ করে এমন একটি পদ্ধতি বর্ণনা করে। এটি নিম্নলিখিত পদক্ষেপে সিদ্ধ হয়:

  1. V3_req এক্সটেনশান সহ একটি ব্যক্তিগত কী এবং সর্বজনীন x509 শংসাপত্র তৈরি করুন এবং সিএ হিসাবে সক্ষম করুন:

    sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/ssl/private/my_site.key -out /etc/ssl/certs/my_site.crt -reqexts v3_req -extensions v3_ca

  2. শংসাপত্রটি ডিআর ফর্ম্যাটে রূপান্তর করুন যা অ্যান্ড্রয়েড দ্বারা বোঝা হয়েছে:

    sudo openssl x509 -in /etc/ssl/certs/my_site.crt -outform der -out my_site.der.crt

  3. my_site.der.crtআপনার অ্যান্ড্রয়েড ডিভাইসে পাওয়ার জন্য যে কোনও পদ্ধতি ব্যবহার করুন - আমি কেবল আমার ওয়েব সার্ভার দ্বারা ফাইলটি হোস্ট করা এবং অ্যান্ড্রয়েড ব্রাউজারের মাধ্যমে এটি ডাউনলোড করা সহজ বলে মনে হয়েছিল, যা আপনাকে স্বয়ংক্রিয়ভাবে এটি ইনস্টল করতে দেয়।

যদিও আমি প্রথম পদক্ষেপটি দুটি ভাগে বিভক্ত করতে পছন্দ করতাম (1 ক। প্রাইভেট কী তৈরি করে এবং 1b। পাবলিক শংসাপত্রের জেনারেশন), কীভাবে এটি করা যায় তা তদন্ত করার জন্য আমি খুব বেশি সময় বিনিয়োগ করিনি। ধন্যবাদ যদি আপনি কোনও উপায় খুঁজে পাওয়া যায় তবে একটি মন্তব্যে আমাকে জানান let

(কোনও মন্তব্য যুক্ত করার পরিবর্তে, আমি মনে করি এটি ভবিষ্যতের রেফারেন্সের উত্তরের অংশ হিসাবে সত্যিই অন্তর্ভুক্ত, তাই আমি এটি সম্পাদনা করছি - - মিশেল)

সিএ হিসাবে সক্ষম শংসাপত্র তৈরির পরিবর্তে আমি একটি স্ব-স্বাক্ষরিত সিএ তৈরি করেছি এবং তারপরে আমার বিদ্যমান কী / সিএসআরটিকে নতুন সিএ দিয়ে পুনরায় স্বাক্ষর করেছি তারপরে আমি স্ব-স্বাক্ষরিত সিএ এন্ড্রয়েড এবং ভয়েলায় যুক্ত করেছি! এটা কাজ করেছে!

স্ব-স্বাক্ষরিত সিএ তৈরি করা:

openssl genrsa -out rootCA.key 4096
openssl req -x509 -new -nodes -key rootCA.key -days 3650 -out rootCA.pem

এর থেকে কীটি তৈরি করা থেকে আমার বিদ্যমান সিএসআরটিকে পুনরায় স্বাক্ষর করতে হবে

openssl x509 -req -in existing.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out existing.crt -days 3649

এখন আপনার দ্বিতীয় কমান্ডের একটি পরিবর্তিত ফর্ম ব্যবহার করে আমি সিএ শংসাপত্রটি ডিইআর ফর্মে রূপান্তর করেছি:

openssl x509 -in /etc/apache2/ssl/rootCA.pem -outform der -out ~/rootCA.der.crt

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


1
আমার কাছে ইতিমধ্যে ইনস্টল করার দরকার শংসাপত্র রয়েছে, তাই আমি পদক্ষেপ 2 চেষ্টা করেছিলাম এবং এটি ইনস্টলনে সফল হওয়ার দাবি করার পরে এটি ব্যবহারকারী বিশ্বস্ত শংসাপত্রগুলিতে প্রদর্শিত হচ্ছে না এবং ক্রোম এখনও পুনরায় চালু হওয়ার পরে "অবিশ্বস্ত সাইট" ত্রুটি প্রদর্শন করে।
মাইকেল

1
V3_req এক্সটেনশান এবং সিএ হিসাবে সক্ষম হওয়া সম্পর্কে এমন কিছু থাকতে পারে যে অ্যান্ড্রয়েড ব্যবহার করার জন্য শংসাপত্রের প্রয়োজন? যদি তা হয়, তবে এমন কোনও আদেশ আছে যা আমি একটি বিদ্যমান শংসাপত্র নিতে এবং এতে তথ্য যুক্ত করতে ব্যবহার করতে পারি, কারণ আমি যে সমস্ত শংসাপত্রগুলি ইনস্টল করতে চাই তার উপরে আমার নিয়ন্ত্রণ নেই।
মাইকেল

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

1
@ আমি আশা করি আপনার আপত্তি নেই, আমি উত্তরটি অংশ হিসাবে মন্তব্যগুলি অন্তর্ভুক্ত না করে আমার সমাধানটি অন্তর্ভুক্ত করার জন্য আপনার উত্তরটি সম্পাদনা করতে যাচ্ছি কারণ এটি সত্যই উত্তরের অংশ হিসাবে অন্তর্ভুক্ত।
মাইকেল

1
বিদ্যমান সিএসআর স্বাক্ষর করার অনুরোধটি কীভাবে উত্পন্ন হয় তা আমি তা পাই না। আমি মনে করি এটি ধাপে ধাপে টিউটোরিয়ালের সম্পূর্ণ পদক্ষেপের জন্য সর্বশেষ অনুপস্থিত পয়েন্ট।
cguenther
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.