অ্যান্ড্রয়েড 7 নুগাটের সাথে কীভাবে চার্লস প্রক্সি কাজ পাবেন?


103

অ্যান্ড্রয়েড 7 শংসাপত্রগুলি হ্যান্ডেল করার পদ্ধতিতে কিছু পরিবর্তন আনল ( http://android-developers.blogspot.com/2016/07/changes-to-trusted-certificate.html ) এবং একরকমভাবে আমি আমার চার্লস প্রক্সিটিকে আর কাজ করতে পারি না।

আমার নেটওয়ার্ক_সিকিউরিটি_কনফিগ.এক্সএমএল:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

আমি ডিবাগ মোডে চলছি। তবে যাই হোক না কেন, আমি পাই javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

বলা বাহুল্য, আমি একটি pfxশংসাপত্র ইনস্টল করেছিলাম Settings -> Security -> Install from storage। শংসাপত্রটি দেখায় User Credentialsকিন্তু এতে নেই Trusted credentials -> User। আমার ললিপপ ডিভাইসে, শংসাপত্রগুলি সেখানে তালিকাবদ্ধ রয়েছে।

আমি এইচটিটিপি লাইব্রেরি হিসাবে ওখট্টিপি 3 ব্যবহার করছি।

আমি কি ভুল করছি কোন ধারণা?


4
দ্রুত পরীক্ষা হিসাবে, এটিকে userএকটিতে যুক্ত / সরানোর চেষ্টা করুন <base-config>এবং দেখুন যে এটির ক্ষেত্রে কোনও পরিবর্তন ঘটে। এটি করা উচিত নয়, তবে এটি চেষ্টা করতে কেবল এক মুহূর্ত সময় নেবে।
কমন্সওয়েরে

চার্লসের জন্য আপনাকে বিকাশকারী.অ্যান্ড্রয়েড / ট্রেনিং / আর্টিকেলস / সিকিউরিটি- কনফিগ এইচটিএমএল-তে স্পষ্টত সিএ যুক্ত করার দরকার হবে না : চার্লস সিএ স্ব-উত্পন্ন হওয়ায় 'অতিরিক্ত সিএ'র উপর নির্ভর করা' এবং এটি এতে থাকবে না অ্যান্ড্রয়েড সিস্টেমের বিশ্বাসের চেইন?
মরিসন চ্যাং

@ মরিসন চ্যাং: আমি চার্লস সিএ অ্যাপ্লিকেশনটিতে এম্বেড করতে চাই না, আমি এটি করার মতো আমার বিকাশের ফোনে এটি ম্যানুয়ালি যুক্ত করতে সক্ষম হতে চাই। থেকেSettings -> Security -> Install from storage
mbonnin

1. আপনি কীভাবে আপনার অ্যাপের অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলতে নেটওয়ার্ক_সিকিউরিটি_কনফিগ.এক্সএমএল উল্লেখ করছেন? ২. আপনি কি দয়া করে .pfx ফাইলটি লিঙ্ক করবেন? আমি অনুমান করি এটিতে কেবল সিএ সার্ট (কোনও ব্যক্তিগত কী নেই) রয়েছে এবং তাই প্রকাশ করা ভাল হবে। আমি জিজ্ঞাসা করছি কারণ, যদি .pfx একটি প্রাইভেট কী থাকে তবে এটি একটি ক্লায়েন্ট শংসাপত্র ফাইল হিসাবে ধরে নেওয়া হবে এবং এইভাবে ফাইলটি থেকে সিএ সার্ভার প্রমাণীকরণের জন্য বিশ্বস্ত হিসাবে ইনস্টল করা হবে না।
অ্যালেক্স ক্লিউবিন

4
@ অ্যালেক্সক্লিউবিন হাররা, এখন কাজ করছে :)। আমার ধারণা আমার চার্লস বা অ্যাপ্লিকেশন বা অন্য যে কোনও জিনিসটি পুনরায় চালু করতে হবে। আমি বিভ্রান্ত হয়ে পড়েছিলাম কারণ আমি নওগাতের আগে অজস্র অ্যান্ড্রয়েড ডিভাইসে একই .pfx ফাইলটি ইনস্টল করেছি এবং সেগুলি ঠিকঠাক হিসাবে স্বীকৃত হয়েছিল। তবে এখন সবকিছু ঠিক আছে। আপনি কি একটি উত্তর লিখতে পারেন যাতে আমি এটি অনুমোদন করতে পারি?
mbonnin

উত্তর:


26

ওপির জন্য মন্তব্যের সমস্যা সমাধানের থ্রেডের উপর ভিত্তি করে, উত্তরটি হ'ল প্রক্সিটির সিএ সার্টকে বিশ্বাসযোগ্য হিসাবে ইনস্টল করা হবে, এর শংসাপত্রটি + ব্যক্তিগত কী নয়।

সমস্যাটি দুটি কারণ দ্বারা সৃষ্ট হয়েছিল:

  1. কেবল মিটিএম প্রক্সির সিএ সার্টই নয় এটির ব্যক্তিগত কীও (এইভাবে ডিভাইসে ভিপিএন অ্যাপ্লিকেশনগুলি অন্যান্য অ্যাপ্লিকেশন থেকে ডিক্রিপ্ট / এমআইটিএম নেটওয়ার্ক ট্র্যাফিক সক্ষম করে)। ডিভাইসে আপনার মিটএম প্রক্সিটির ব্যক্তিগত কী লাগবে না।

  2. অ্যান্ড্রয়েড নওগ্যাট সেই Settings -> Security -> Install from storageফাইলগুলির প্রবাহের আচরণে পরিবর্তন করে যার মধ্যে শংসাপত্রের পাশাপাশি একটি ব্যক্তিগত কী থাকে। আচরণের এই পরিবর্তনটি উপরের সমস্যাটি থেকে মুক্ত করে।

নওগাটের আগে, শংসাপত্রগুলি Settings -> Security -> Install from storageছাড়াও একটি প্রাইভেট কী থাকা ফাইলগুলির প্রবাহটি ভুলভাবে সার্ভারের প্রমাণীকরণের জন্য বিশ্বাসযোগ্য হিসাবে শংসাপত্রগুলি ইনস্টল করে (যেমন, এইচটিটিপিএস, টিএলএস, এভাবে আপনার এমআইটিএম সফল করে তোলে), ক্লায়েন্ট শংসাপত্র হিসাবে সঠিকভাবে ইনস্টল হওয়ার জন্য ব্যবহৃত হয় for এই অ্যান্ড্রয়েড ডিভাইসটিকে সার্ভারে প্রমাণীকরণ করা হচ্ছে। নওগাতে, বাগটি ঠিক করা হয়েছিল এবং এই শংসাপত্রগুলি আর সার্ভার প্রমাণীকরণের জন্য বিশ্বস্ত হিসাবে ইনস্টল করা হয় না। এটি ক্লায়েন্টের প্রমাণীকরণের শংসাপত্রগুলিকে সার্ভারের সাথে সংযোগগুলির সুরক্ষা প্রভাবিত করতে (দুর্বল) বাধা দেয়। আপনার দৃশ্যে এটি আপনার এমআইটিএম সফল হতে বাধা দেয়।

যে বিষয়গুলিকে জটিল করে তোলে তা হ'ল Settings -> Security -> Install from storageব্যবহারকারীরা কোনও ক্লায়েন্ট প্রমাণীকরণ শংসাপত্র (প্রাইভেট কী + সার্ট চেইন) ইনস্টল করছেন কিনা বা সার্ভার প্রমাণীকরণের ট্র্যাক্ট অ্যাঙ্কার (কেবল একটি সিএ সার্টি - কোনও প্রাইভেট কী প্রয়োজন নেই) তা নির্দিষ্ট করার জন্য একটি স্পষ্ট উপায় সরবরাহ করে না that । ফলস্বরূপ, Settings -> Security -> Install from storageপ্রবাহটি অনুমান করে যে এটি ক্লায়েন্ট / ব্যবহারকারীর প্রমাণীকরণ শংসাপত্র বা সার্ভার প্রমাণীকরণ ট্রাস্ট অ্যাঙ্করকে ধরে নিয়েছে বা ধরে নিচ্ছে যে কোনও ব্যক্তিগত কী সুনির্দিষ্ট করা থাকলে, এটি অবশ্যই ক্লায়েন্ট / ব্যবহারকারী প্রমাণীকরণ শংসাপত্র হতে হবে। আপনার ক্ষেত্রে, এটি ভুলভাবে ধরে নিয়েছে যে আপনি কোনও সার্ভার প্রমাণীকরণের ট্র্যাক অ্যাঙ্কারের পরিবর্তে ক্লায়েন্ট / ব্যবহারকারী প্রমাণীকরণ শংসাপত্র ইনস্টল করছেন।

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


4
পিএস সম্পর্কিত: ডকুমেন্টেশন বলছে Trust anchors specified in debug-overrides are added to all other configurations। সুতরাং আমি এই ছাপে ছিলাম যে এটি 'বেস-কনফিগারেশনে' যুক্ত হয়েছে এবং এটি পুরোপুরি প্রতিস্থাপন করে না?
mbonnin

ওহ আপনি ঠিক. আপনার ডিবাগ-ওভাররাইডগুলিতে স্পষ্টভাবে "সিস্টেম" বিশ্বাসের অ্যাঙ্করগুলি তালিকাভুক্ত করার দরকার নেই।
অ্যালেক্স ক্লিউবিন

4
এই উত্তরটি অস্পষ্ট। নীচে @ stkent এর উত্তর দেখুন।
অ্যাডাম হুরউইৎজ

4
এই উত্তরটির সাথে সম্মত হন যা ঘটছে তা ব্যাখ্যা করে তবে একটি কী পদক্ষেপ নিতে হবে তা খুব অস্পষ্ট।
স্টারউইন্ড0

116

সমাধানটি .p12 ব্যবহার করে না , কেবল ক্রোম দিয়ে (ওয়াইফাইতে কনফিগার করা প্রক্সি সহ) http://charlesproxy.com/getssl এ নেভিগেট করুন এবং ডাউনলোডকৃত .pem ফাইল ইনস্টল করুন

আমার Nexus 5X চলমান Android 7.0 এ ঠিক একই সমস্যা ছিল। চার্জ ৩.১.১.৫ এর আগে .p12 রফতানি হয়েছিল (সহায়তা-> এসএসএল প্রক্সিং-> রফতানি চার্লস রুট শংসাপত্র এবং ব্যক্তিগত কী)। আমি যখন ফোন থেকে .p12 ইনস্টল করার চেষ্টা করেছি (সেটিংস-> সুরক্ষা-> সঞ্চয়স্থান থেকে ইনস্টল করুন) এটি কেবলমাত্র "ব্যবহারকারীর শংসাপত্রগুলির" অধীনে প্রদর্শিত হয় এবং কখনই "বিশ্বাসযোগ্য শংসাপত্রগুলি" তে উপস্থিত হয় না এবং অবশ্যই চার্লস প্রক্সি সহ এসএসএল কাজ করে না।

অ্যান্ড্রয়েড .0.০ এর জন্য মোট "কীভাবে" তা এমন হবে:

  1. ওয়াইফাই + প্রক্সি কনফিগার করুন (চার্লসের এটির কীভাবে প্রয়োজন)। এটি সংযুক্ত করুন।
  2. ডিভাইসে, ক্রোম দিয়ে http://charlesproxy.com/getssl এ নেভিগেট করুন , .pem ডাউনলোডের জন্য অনুরোধ গ্রহণ করুন, তারপরে "ওপেন" টিপুন, এটি "শংসাপত্র ইনস্টলার" অ্যাপ্লিকেশন চালু করে। "ভিপিএন এবং অ্যাপস" হিসাবে শংসাপত্রটি ইনস্টল করতে এটি ব্যবহার করুন।
  3. অ্যাট্রিবিউট রাখুন android:networkSecurityConfig="@xml/network_security_config"করার <application>Manifest.xml এ
  4. প্রথম পোস্ট থেকে সামগ্রী সহ রেজ / এক্সএমএল / নেটওয়ার্ক_সিকিউরিটি_কনফিগ.এক্সএমএল তৈরি করুন (এটি সম্পূর্ণ সঠিক)।
  5. চার্লস এবং অ্যাপ্লিকেশন চালু করুন এবং মজা করুন।

ডিভাইসে PS পরীক্ষা করার তারিখ / সময়। এটা সঠিক হওয়া উচিত।


4
এই দুর্দান্ত উত্তরের একটি গুরুত্বপূর্ণ নোট: যদি আপনার অ্যাপ্লিকেশনটি এপিআই 23 বা তার চেয়ে কম লক্ষ্যবস্তু করে থাকে তবে আপনার 3 এবং 4 পদক্ষেপের দরকার নেই বাস্তবে আপনি এপিআই 23 থাকলে নেটওয়ার্ক-সুরক্ষা-কনফিগার স্টাফ সংকলন করতে সক্ষম হবেন না বা কম।
ডেভিড ফেরানড

4
এটি অ্যান্ড্রয়েড 7.0 এর জন্য দুর্দান্ত সমাধান। অফিসিয়াল চার্লস প্রক্সি তথ্যের চেয়ে আরও স্পষ্ট।
অ্যাডাম লিঙ্ক

4
সম্ভবত কেবলমাত্র আমি কিন্তু এই পদক্ষেপগুলি আমার পক্ষে 7.১.১-এ আর কাজ করে না। আমি সম্প্রতি একটি আপডেট করেছি
সত্যজিৎ

@ সত্যজিৎ এই সমাধানটি আমার জন্য গুগল পিক্সেলের অ্যানড্রয়েড 7.1.1 এ কাজ করছে।
ডিক লুকাস

3 বা 4 ধাপ সহ বা ছাড়াই?
সত্যজিৎ


-1

আমি অ্যান্ড্রয়েড .1.১.১ এ আছি, আমি কীভাবে আমার ডিভাইসে (ওয়ানপ্লাস ওয়ান) সেটআপ করব - ম্যানিফেস্টের পরিবর্তন ছাড়াই (আমি আমার অ্যাপ্লিকেশনটির জন্য এপিআই 21 তে টার্গেট করেছিলাম):

চার্লস প্রক্সি ইন:

  1. Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser। এই পদক্ষেপগুলি আপনাকে প্রক্সি আইপি এবং পোর্ট নম্বর এবং যেখানে আপনার চার্লস প্রক্সি এসএসএল ডাউনলোড করা উচিত তার লিঙ্ক দেয়।

আপনার ফোনে:

  1. Wifi Settings > Modify Network > Advanced Options। সেট Proxy- র Manualএবং আপনি মধ্যে চার্লস থেকে প্রাপ্ত আইপি এবং পোর্ট নাম্বার প্রবেশ করান Proxy hostnameএবং Proxy portযথাক্রমে।

  2. (বিকল্প) আপনি চার্লসের আগে সরবরাহিত chls.pro/ssl লিঙ্কটি অ্যাক্সেস করতে বা করতে সক্ষম হতে পারেন । আমার ডিভাইসে, আমাকে সর্বদা জানানো হয়েছিল যে আমার কোনও নেটওয়ার্ক সংযোগ নেই had আমি Bypass proxy forমাঠে Charlesproxy.com যুক্ত করেছি ।

  3. আপনার ব্রাউজারে, পদক্ষেপ 3-এ লিঙ্কটিতে যান এবং যে কোনও শংসাপত্রের প্রয়োজন হয় তা ডাউনলোড করুন (যদি এটি ক্রোমে কাজ করে না, ডলফিন ব্রাউজারটি ডাউনলোড করুন) whatever আপনি যে কোনও নামেই আপনার শংসাপত্রটির নাম রাখতে পারেন।

চার্লস প্রক্সি ফিরে:

  1. হয় আপনি দ্রুত পাওয়া উচিত Allowবা Denyআপনার সেটিংস রিমোট সংযোগ করার জন্য আপনাকে অনুরোধ জানানো ডিফল্ট হলে আপনার ফোন প্রক্সি ব্যবহার করতে।

আপনি এখন নওগাত 7.1.1 এ চার্লস ব্যবহার করতে পারেন।

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